Intelligent matching method for bill of quantities

By combining a "coarse screening-fine sorting" process with project coding and deep semantic similarity, the accuracy and efficiency issues in bill of quantities matching were resolved, achieving efficient and accurate bill of quantities matching.

CN120634593BActive Publication Date: 2025-11-28浙江省建筑科学设计研究院建筑设计所
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202511142980.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-08-15
Publication Date
2025-11-28
Estimated Expiration
2045-08-15

AI Technical Summary

Technical Problem

Existing bill of quantities matching methods suffer from low accuracy, low efficiency, and error-proneness when faced with diverse bill of quantities item descriptions. In particular, the calculation efficiency bottleneck is obvious in large quota databases, and traditional methods have difficulty understanding the professional semantic features of the engineering field.

Method used

The process adopts a two-stage process of "coarse screening-fine sorting". First, the project description is deeply analyzed to form a key feature dictionary. Combined with the project code, the standard quota library is efficiently filtered. Then, deep semantic similarity and feature dictionary are used to accurately sort the candidate list to achieve accurate matching.

Benefits of technology

It effectively overcomes the semantic gap caused by synonyms, word order reversal, and non-standard expressions, significantly improves the accuracy and efficiency of matching, and ensures the accuracy of bill of quantities matching.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120634593B_ABST
    Figure CN120634593B_ABST
Patent Text Reader

Abstract

The application discloses an engineering quantity list intelligent matching method, which firstly forms a key feature dictionary through deep analysis on project description, and constitutes the basis for subsequent accurate matching; then, a two-stage process of 'coarse screening-precise arrangement' is adopted: in the coarse screening stage, the project code pointing to the professional classification is combined with the key features capable of quickly locking the core elements, the huge standard quota library is efficiently filtered, and a candidate matching list with controllable size and high correlation is quickly generated; in the precise arrangement stage, more detailed semantic and feature double checking is turned to, the deep semantic similarity of the complete project description text and the accurate comparison result of the key feature dictionary are comprehensively utilized, the final score is obtained through fusion calculation, and accurate sorting of the candidate list is realized. In this way, the semantic gap caused by synonyms, reversed sequence, non-standard expressions and the like in traditional text matching can be effectively overcome, and the accuracy of matching is greatly improved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the field of intelligent matching, and more specifically, to an engineering quantity list intelligent matching method. BACKGROUND

[0002] In the field of construction project cost management, the engineering quantity list is the core basis for project cost accounting, and the accurate matching of its project and corresponding quota sub-object is the basis for pricing work. For a long time, this matching work has been highly dependent on the professional knowledge reserve and manual experience judgment of cost engineers, which is not only time-consuming and laborious, but also inefficient. In the face of a large number of quota libraries and non-standardized and variously described list project descriptions, it is easy to cause mismatching and missing due to human oversight or understanding differences, which directly affects the accuracy and reliability of the project cost and becomes a key bottleneck restricting the efficient and scientific management of the project. Therefore, it has become an urgent technical requirement of the industry to build an intelligent and automated engineering quantity list matching scheme to improve the accuracy and efficiency of matching and reduce the dependence on manual work and the risk of errors.

[0003] In view of this demand, the prior art has proposed various engineering quantity list intelligent matching methods. Some schemes attempt to use the preset rules between list item codes and quota codes for direct mapping matching. However, different list compilation subjects or standard systems based on different standards have different coding systems or complex and variable rules, which makes this method relying on fixed coding rules have poor robustness and is difficult to adapt to the common situation of coding missing, errors or system conflicts in actual engineering. Some other schemes focus on text similarity calculation, mainly using general algorithms such as cosine similarity to directly compare the text similarity of list item description texts and quota sub-object names or work contents. Although this kind of method gets rid of the dependence on coding, its core defect is that it fails to deeply understand the professional semantic features in the engineering field. The widespread existence of professional terms in the project description, such as synonymous isomerism, regional colloquialisms, abbreviations and shorthand, and flexible combinations of feature modifiers (such as strength grade, construction technology, material specification, etc.), makes it difficult for simple literal text similarity calculation to accurately capture the deep relationship between the core features of the project and the quota requirements, and often leads to a mismatch between the matching results and the actual engineering due to semantic gaps. In addition, in the face of a large-scale quota database containing tens of thousands or even hundreds of thousands of quota sub-objects, relying only on a single level of global matching strategy has a significant bottleneck in calculation efficiency.

[0004] Therefore, an optimized engineering quantity list intelligent matching method is expected. SUMMARY

[0005] To solve the above technical problems, the present application is proposed. Embodiments of the present application provide an engineering bill intelligent matching method, which first forms a key feature dictionary through deep analysis of project description, constituting the basis for subsequent accurate matching; then adopts a "coarse screening-precise sorting" two-stage process: in the coarse screening stage, the project code pointing to professional classification is combined with the key features that can quickly lock the core elements to efficiently filter the huge standard quota library, quickly generating a candidate matching list with controllable size and high relevance; in the precise sorting stage, more detailed semantic and feature double-checking is turned to, comprehensively utilizing the deep semantic similarity of complete project description text and the accurate comparison results of the key feature dictionary, calculating the final score through fusion to realize accurate sorting of the candidate list. In this way, the semantic gap caused by synonyms, reversed syntax, non-standard expressions and the like in traditional text matching can be effectively overcome, greatly improving the accuracy of matching.

[0006] According to an aspect of the present application, an engineering bill intelligent matching method is provided, which comprises:

[0007] Structural processing is performed on the obtained original engineering bill file to obtain a structured bill data table;

[0008] A first bill item is extracted from the structured bill data table, the first bill item comprising a project code string and a project description text;

[0009] Key feature extraction is performed on the project description text in the first bill item to obtain a first bill item feature dictionary;

[0010] Based on the project code string in the first bill item and the first bill item feature dictionary, coarse screening of a candidate set is performed on a standard quota library to obtain a coarse screening candidate matching list;

[0011] Based on the project description text in the first bill item and the first bill item feature dictionary, the final fusion score between the first bill item and each to-be-matched item in the coarse screening candidate matching list is calculated to obtain a final matching sorting list;

[0012] The to-be-matched item with the top-3 final fusion score is extracted and displayed from the final matching sorting list.

[0013] Compared with the prior art, the bill of quantities intelligent matching method provided by the application firstly forms a key feature dictionary through deep analysis of the project description, which constitutes the basis for subsequent accurate matching; then, a "coarse screening-precise sorting" two-stage process is adopted: in the coarse screening stage, the project code pointing to the professional classification is combined with the key features capable of quickly locking the core elements to efficiently filter the huge standard quota library, and a candidate matching list with controllable size and high relevance is quickly generated; in the precise sorting stage, more detailed semantic and feature double checking is turned to, the deep semantic similarity of the complete project description text and the accurate comparison result of the key feature dictionary are comprehensively utilized, the final score is obtained through fusion calculation, and accurate sorting of the candidate list is realized. In this way, the semantic gap caused by synonyms, reversed word order, non-standard expressions and the like in traditional text matching can be effectively overcome, and the accuracy of matching is greatly improved. BRIEF DESCRIPTION OF DRAWINGS

[0014] The above and other objects, features and advantages of the present application will become more apparent from the following detailed description when taken in conjunction with the accompanying drawings in which:

[0015] Figure 1 a flow chart of the bill of quantities intelligent matching method according to the embodiment of the present application;

[0016] Figure 2 a data flow schematic diagram of the bill of quantities intelligent matching method according to the embodiment of the present application. DETAILED DESCRIPTION

[0017] Hereinafter, example embodiments according to the present application will be described in detail with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of the present application, and are not all the embodiments of the present application, and it should be understood that the present application is not limited to the example embodiments described herein.

[0018] As shown in the present application and claims, unless the context clearly indicates otherwise, "one", "a", "an", and / or "the" do not specify a single number, but can also include a plurality. Generally, the terms "comprise" and "include" only indicate the inclusion of the steps and elements explicitly identified, and these steps and elements do not constitute an exclusive list, and the method or device can also include other steps or elements.

[0019] Although the present application makes various references to certain modules in the system according to embodiments of the present application, any number of different modules can be used and run on the user terminal and / or server. The modules are merely illustrative and different aspects of the system and method can use different modules.

[0020] Flowcharts are used in the present application to illustrate the operations performed by the system according to embodiments of the present application. It should be understood that the preceding or following operations are not necessarily performed in sequence. Instead, various steps can be processed in reverse order or simultaneously, as desired. Other operations can also be added to or removed from these processes, or one or more steps can be removed from these processes.

[0021] In the following, example embodiments according to the present application will be described in detail with reference to the accompanying drawings. It is apparent that the described embodiments are only a part of the embodiments of the present application, and the present application should not be limited to the example embodiments described herein.

[0022] In the technical solutions of the present application, an engineering quantity list intelligent matching method is provided. Figure 1 A flowchart of the engineering quantity list intelligent matching method according to embodiments of the present application. Figure 2 A data flow diagram of the engineering quantity list intelligent matching method according to embodiments of the present application. As shown in Figure 1 and Figure 2 The engineering quantity list intelligent matching method according to embodiments of the present application includes the following steps: S1, performing structured processing on the obtained original engineering quantity list file to obtain a structured list data table; S2, extracting a first list item from the structured list data table, the first list item including a project code string and a project description text; S3, performing key feature extraction on the project description text in the first list item to obtain a first list item feature dictionary; S4, based on the project code string in the first list item and the first list item feature dictionary, performing candidate set rough screening on a standard quota library to obtain a rough screening candidate matching list; S5, based on the project description text in the first list item and the first list item feature dictionary, calculating the final fusion score between the first list item and each to-be-matched item in the rough screening candidate matching list to obtain a final matching ranking list; and S6, extracting and displaying the to-be-matched items with the final fusion score being Top-3 from the final matching ranking list.

[0023] In particular, the S1 performs a structured processing on the obtained original engineering bill quantity file to obtain a structured bill data table. The original engineering bill quantity file refers to an engineering project pricing file provided by a user and having a non-fixed format, such as an Excel spreadsheet, a PDF document or a file exported by a specific cost software. The structured bill data table refers to a two-dimensional data set having a unified and regular table structure after processing, wherein each row represents an independent bill item, each column represents a specific attribute (such as a project code, a project name, etc.) of the bill item, and is a direct data source for subsequent calculations. In the technical solution of the present application, the structured processing on the obtained original engineering bill quantity file can eliminate the uncertainty and heterogeneity of the original data, and establish a stable, reliable and uniformly formatted data basis for subsequent automated analysis.

[0024] Specifically, in one specific example of the present application, the obtained original engineering bill quantity file can be processed by the following steps: first, the original engineering bill quantity file is subjected to file type recognition to obtain a file type recognition result. It should be understood that in engineering practice, the original engineering bill quantity file uploaded by the user can have various formats, such as common Excel tables, non-editable PDF documents or special format files exported by specific cost software. Each file format has its unique data storage structure and reading method. Only by accurately identifying the file type, the system can call a matched and adapted parser to correctly read and extract data, thereby ensuring the universality and robustness of the entire method for different source files and avoiding parsing failure or data disorder due to format mismatch.

[0025] The file type recognition result is an explicit identifier (for example, a string "Excel" or "PDF") used to indicate the specific format of the original file.

[0026] In specific implementation, first, the system performs a preliminary analysis based on the file extension. When an original engineering bill quantity file is received, the system parses the extension from the file name string. The system internally maintains a mapping table of known extensions and file types, for example, {".xls": "Excel", ".xlsx": "Excel", ".pdf": "PDF"}. The system compares the parsed extension with the mapping table to obtain a preliminary recognition result.

[0027] However, since the file extension can be easily modified by the user, there is a risk of relying solely on this method. Therefore, in order to further ensure the accuracy of the identification, the system further carries out a deep check based on the binary information of the file header. Specifically, the system will open the file in binary mode and read a certain number of bytes at the starting position of the file. Then, the binary sequence read is compared with a preset "magic number" library. This library stores the unique binary signatures of various common file formats. For example, all ".xlsx" format files are essentially a ZIP compressed package, so their file header binary information will conform to the ZIP format specification. Through this byte-level comparison, the system can obtain a highly reliable file type judgment. Finally, the system will combine the results of the above two methods, usually taking the deep check result as the standard, to generate the final, deterministic file type identification result.

[0028] Next, based on the file type identification result, an appropriate parser is selected, and the original engineering quantity file is parsed based on the appropriate parser to obtain the preliminary parsed original data. It should be understood that different file types have completely different internal data encoding and organization structures. For example, Excel files store data in the form of worksheets, rows, and columns of cells, while PDF files describe page layout and text in the form of object streams. Any mismatch will result in unreadable data or meaningless garbled code. In the technical solution of the present application, the original engineering quantity file is parsed based on the appropriate parser to ensure that the system can access its content in the correct way, thereby encapsulating the information inside the file for subsequent processing programs, laying the foundation for the final structured original data.

[0029] Among them, the appropriate parser refers to a special software module or library function designed to understand and process the binary structure or text encoding of a specific file format. The preliminary parsed original data is a data structure stored in the computer memory, usually represented as a two-dimensional array, list of lists, or data frame, which reflects all the visible information in the file, including but not limited to valid data lines, table headers, blank lines, comments, and even formatted merged cell information.

[0030] In specific implementation, first, the system takes the file type identification result as an input key and maps it to a specific, pre-integrated parser object or function in the system; when the received file type is "Excel", an Excel file reader based on the Python pandas library is automatically selected and instantiated; when the type is "PDF", a PDF text extractor based on the PyPDF2 library is selected. This mechanism ensures the automation and accuracy of the operation.

[0031] Then, the file parsing is performed by calling the adapted parser. Once the adapted parser is selected, the system calls the core function of the adapted parser and passes the path or data stream of the original project list file as a parameter to the adapted parser. The adapted parser opens the file and reads and decodes the file content byte by byte or object by object according to the specification of the corresponding format. For table type files, the parser identifies the sheets, rows and columns, and extracts the data in each cell to load the content of the entire file or the specified sheet into the memory completely and losslessly to obtain the original data after preliminary parsing. This data retains the original row and column layout and provides complete context information for the next step of locating the table header and data cleaning.

[0032] Then, the table header is located and the column mapping is performed on the original data after preliminary parsing to obtain the data row data and the column mapping relationship dictionary. Since the table header position of the project list file is not fixed, the order of the columns is variable, and the naming of the columns also varies due to the habits of the preparers (for example, "project code" may be named as "list code" or "code"). In the technical solution of the present application, the key information defining the data structure, i.e. the table header, is automatically discovered by an intelligent algorithm, and the corresponding relationship between the original column name and the internal standard field of the system is established, thereby solving the heterogeneity problem of the data source and enabling the subsequent data screening and extraction to be accurate and automated.

[0033] Among them, the table header specifically refers to one or more rows in the original data used to define the meaning of each column data. The data row data refers to the set of valid data rows containing the actual list item content in the original data after locating the table header, excluding the table header and other non-data rows (such as empty rows, title rows). The column mapping relationship dictionary is a key data structure that establishes the corresponding relationship between the column title in the original file and the internal standard field name of the system, solving the data extraction problem caused by different column names in different files.

[0034] In specific implementation, the system first traverses the first N rows (N is a configurable and reasonable exploration depth, for example, 20 rows) of the original data after preliminary parsing, calculates a table header similarity score for each row, and the calculation method of the score can be a weighted summation function. The core idea is to check how many pre-defined keywords with high recognition in the field of project list are contained in the row. These keyword libraries are pre-set and contain various variants of words such as "project code", "list code", "project name", "project feature", "project description", "unit of measurement", "engineering quantity", etc.

[0035] Next, once the header row is identified, the system iterates through each cell in the row (i.e. the original column titles). For each column title, the system matches it against an internal library of standard field synonyms. This library associates a set of possible aliases (e.g. "item code", "list number", "code", etc.) with each system standard field (e.g. "list code column"). When a match is found between an original column title and a standard field synonym, the system creates a new mapping record in a column mapping dictionary. This dictionary is extremely flexible and can handle complex cases where a standard field is composed of multiple original columns. For example, the system standard field "list description column" might need to be composed of both the "item name" column and the "item characteristics" column in the original file. In this case, the corresponding value in the dictionary would be a list containing the names of the original columns. This dictionary, along with the identified data row data, is passed to the next processing step, which provides precise data extraction instructions.

[0036] Subsequently, based on the column mapping dictionary, after data row filtering and fine-grained cleaning of the data row data, structured data object generation is performed to obtain a structured list data table. It can be understood that, after the table header has been successfully located and the column mapping relationship has been established, the system knows the structure of the data, but is still mixed with a large amount of noise and format inconsistency problems. Therefore, in the technical solution of the present application, through the systematic filtering, cleaning and generation process, all interference information useless or even harmful to subsequent analysis is removed, and effective information is unified to a standardized data paradigm, so that the structured list data table finally output has high consistency, accuracy and usability, and provides a high-quality data basis for subsequent feature extraction, similarity calculation and other core algorithms.

[0037] Among them, the data row filtering aims to eliminate the rows that do not contain effective list item information from the data row data, such as completely blank rows, summary statistics rows containing words such as "total" and "subtotal", and other formatted decorative or annotation rows. Fine-grained cleaning is a kind of deep processing for standardizing single data cell content, and the operation object is each relevant cell of the effective data row left after filtering, and the processing content includes but is not limited to removing redundant white spaces, converting character encoding (such as full-width to half-width), and processing special control characters. Structured data object generation refers to creating a new data record (or object) conforming to the internal unified data model of the system for each filtered and cleaned effective data row according to the column mapping relationship dictionary. The structured list data table is a collection of all these generated structured data objects, which is a neat two-dimensional data table that can be directly called by subsequent programs.

[0038] In implementation, the system first filters the data rows based on rules. In this process, an iterator is started with column mapping dictionary and data rows as input, and all data rows are traversed one by one. In the traversal process, each row will be tested by one or more predefined rules. These rules include:

[0039] Empty row detection, that is, to determine whether all cells in a row are empty or contain only white spaces, if so, the row is discarded directly;

[0040] Summary row identification, the system scans the content of a specific column (usually the project name column), applies regular expressions or keyword matching (such as searching for "total", "subtotal", "total" and other substrings) to identify summary rows, and once a match is found, the row is determined to be invalid and is filtered out;

[0041] Structural integrity check, for example, the system can specify that a valid list item row must contain non-empty values in the "project code" column, and rows that do not meet this condition will also be considered invalid and filtered out. Only data rows that pass all rule tests will be passed to the next processing step.

[0042] Next, for each valid data row that passes the filtering, the system will further clean the cell data inside it. For the content of each target cell, the system will perform a series of standardization operation functions. These functions specifically include:

[0043] White space normalization, that is, to call a string processing function (such as strip()) to remove all white spaces before and after the content, and use regular expressions to replace multiple consecutive white spaces (including spaces, tabs, etc.) in the content with a single space;

[0044] Character set normalization, that is, to convert all full-width characters (such as "C35") in the text to half-width characters ("C35") to ensure consistency in subsequent processing;

[0045] Special character processing, such as removing or replacing line breaks, carriage returns, etc. in the text, to ensure that each cell content is a clean single-line string.

[0046] Subsequently, for each filtered and cleaned data row, a new, normalized data object (e.g. a Python dictionary or a Java POJO object) is created. The generation of this object strictly follows the instructions in the column mapping dictionary. The system iterates through each key in the dictionary (i.e. the system standard field name). For each key, the system extracts the cleaned data from the current processed data row according to its corresponding value (i.e. the original column name or a list of column names). If the value is a single column name, the column data is directly extracted; if the value is a list of column names, the system combines the data of these columns according to pre-defined rules (usually string concatenation, separated by spaces or specific delimiters) to form a composite field. Finally, after all the standard fields are filled, the object is added to a collection. When all the valid data rows are processed, the structured bill of quantity table is obtained.

[0047] In particular, S2 extracts a first bill item from the structured bill of quantity table, which includes a project code string and a project description text. It should be understood that, in the bill of quantity matching process, the original bill file is structured to generate a bill of quantity table, but this table contains multiple bill items. By extracting the first bill item, the system can focus on a single to-be-matched item, avoiding the inefficiency and error accumulation caused by global processing.

[0048] The project code string is a string of hierarchical codes that follows national or industry standards and uniquely identifies the category and attributes of a bill item. The project description text is a text that describes the specific construction content, materials, specifications, etc. of the item in natural language, and is the basis for semantic understanding and feature analysis.

[0049] In implementation, first, the system needs to locate and access the structured bill data table in memory or temporary storage, which is a structured data structure, such as a data frame (DataFrame) or an object list, where each row represents an independent bill item. Second, the system will traverse the data table or select a specific bill item as the current processing target according to the preset instructions (for example, starting from the first row). In practical application, the system usually performs this operation in a loop or iterative manner, extracting each bill item in the table one by one and performing a complete matching process. Specifically, the system reads the field value corresponding to the item code to obtain the item code string, and reads the field value corresponding to the item description (which may be combined from multiple fields such as "item name" and "item characteristics" in the original file) to obtain the item description text. The item code string and the item description text together constitute the complete information of the first bill item and are passed to the subsequent processing module as a data object

[0050] In particular, the S3 extracts the key features of the item description text in the first bill item to obtain the first bill item feature dictionary. It should be understood that in the bill of quantities, the item description text contains all the key information required for matching, but its natural language form is ambiguous and polysemous for computers. For example, "cast-in-place C35 concrete rectangular beam" and "rectangular beam, concrete strength C35, cast-in-place process" are the same thing to humans, but there are differences for simple string comparison algorithms. Without feature extraction, subsequent matching can only stay at the surface level of text similarity calculation, making it difficult to capture the precise requirements of components, materials, processes, specifications, and other core elements in the engineering field, resulting in low matching accuracy, mismatching, and other problems. Therefore, in the technical solution of the present application, by extracting the key features of the item description text in the first bill item, the key engineering semantics such as "component type", "strength level", "construction process" and other key engineering semantics are made explicit and atomic, and organized into a standardized first bill item feature dictionary, providing a solid, reliable and interpretable basis for subsequent candidate set screening and accurate scoring.

[0051] Specifically, in one specific example of the present application, the key feature extraction of the item description text in the first inventory item can be performed by the following steps: first, regular expression matching of the item description text based on a regular expression engine to obtain regular results and text for NER. It should be understood that the item description text usually contains structured features (such as strength grade, size specification) and unstructured semantic information (such as process, component type). Strength grade (such as "C35"), thickness (such as "20mm") and other features have fixed patterns (letter + number combination), but are easily ignored or misinterpreted by general NER models. In the technical solution of the present application, the regular expression engine accurately captures such patterned features through pre-set rules, avoiding interference with semantic analysis. At the same time, separating the matched structured features can significantly improve the recognition accuracy of the remaining text by the subsequent NER model.

[0052] Among them, the regular expression is a special text string used to describe a string pattern, which can express complex matching rules in a very concise way.

[0053] In specific implementation, first, the system starts a regular expression engine, which will load a pre-defined rule library containing a series of regular expressions written by domain experts for common formatted parameters in the field of construction engineering. For example, the rule library may include patterns for matching strength grade, patterns for matching steel bar specifications, and patterns for matching size, etc.; then, the engine will traverse each regular expression in the rule library and apply it to the item description text. This matching process is global, that is, it searches for all substring that matches the pattern in the entire text. When a regular expression successfully matches one or more substrings in the text, these matched substrings (for example, "C35") are collected to form a set, which is the regular result. Subsequently, the system performs a text reduction operation to generate a second output. Specifically, the system removes all substrings that have been successfully matched and extracted into the regular result from the original item description text. The remaining text after the removal operation, that is, the text for NER.

[0054] Then, the text for NER is input into the NER model to obtain the NER result. It can be understood that in the previous link, although parameters with fixed patterns such as "C35" are accurately extracted, a large amount of key engineering information such as component type ("rectangular beam"), construction process ("cast-in-place"), material ("reinforced concrete") and the like has flexible and variable expression modes and does not have fixed and predictable string patterns. For example, "cast-in-place reinforced concrete beam" and "beam, reinforced concrete, cast-in-place construction" are semantically equivalent, but their text structures are completely different. If only simple text matching is relied on, the equivalence cannot be recognized. Therefore, in the technical solution of the present application, the text for NER is input into the NER model to convert the natural language text without fixed formats into structured information composed of standardized engineering concepts (entities) and their categories, thereby greatly improving the depth and breadth of feature extraction and laying a solid semantic foundation for subsequent implementation of high-precision intelligent matching.

[0055] Among them, the NER result is a structured data set, usually a list, and each element in the list is a combination of an identified entity string and its corresponding category label.

[0056] In implementation, first, the system loads and initializes a pre-trained named entity recognition (NER) model for the field of building engineering. This model is loaded into memory at program startup, and it contains the network structure definition of the model itself and the weight parameters obtained after training on a large amount of field data, which solidifies the model's understanding ability of engineering field text; then, the text used for NER is preprocessed, which mainly includes text segmentation or character segmentation processing. For Chinese text, generally adopt the character segmentation strategy, that is, the input text string (such as "cast-in-place reinforced concrete rectangular beam") is cut into a character sequence (['present', 'cast','steel','reinforced','mixed', 'condensed','soil','rectangle','shape', 'beam']). Then, the character sequence is converted into a corresponding digital ID sequence; then, the preprocessed digital ID sequence is formally used as input and fed into the NER model for inference calculation. The model (such as neural network based on BERT or BiLSTM-CRF structure) will process the digital ID in the sequence one by one, and combine its context information to predict a label for each ID (i.e. each character). These labels usually follow the BIO or BIOES annotation system, for example, B- component represents the beginning of the "component" type entity, I- component represents the middle part of the "component" type entity, and O represents a non-entity; finally, the system will post-process or decode the label sequence output by the model, which will combine the characters corresponding to the continuous and same entity labels according to the label sequence (such as ['B- process', 'E- process', 'B- material', 'I- material', 'I- material', 'I- material', 'E- material', 'B- component', 'I- component', 'E- component']), and attach the class of the entity. For example, the system will merge the characters'matrix','shape', and 'beam' marked as B- component, I- component, and E- component into the entity "rectangular beam", and assign it the class of "component". All entities and their classes identified in this way form a set, which is the NER result.

[0057] Subsequently, the regular result and the NER result are merged to obtain the first list item feature dictionary. It can be understood that the regular result extracts structured and patterned engineering attributes (such as strength grade "C35", thickness "20mm"), the values of which are accurately matched through preset rules, but cannot understand the semantic context; the NER result identifies engineering entities in unstructured text (such as process "cast-in-place", material "reinforced concrete"), which relies on semantic models to understand professional terms, but has low sensitivity to digital coding type features. Therefore, in order to enable subsequent candidate set screening and final score calculation and other modules to be able to use all these extracted key features in a unified framework, without discrimination and comprehensively, in the technical solution of the present application, by merging the regular result and the NER result, all dimensional feature information is collected into the same standardized structure to obtain the first list item feature dictionary. In this way, the subsequent processing logic is simplified, the coupling degree between the modules of the system is reduced, and a complete and consistent data basis is provided for realizing accurate and efficient feature-level matching.

[0058] Among them, the first list item feature dictionary is a structured data object, which completely describes all key engineering features contained in the original project description text in the form of key-value pairs. The key is a standardized feature category, such as "strength grade", "process", etc., and the value is the corresponding specific content extracted from the text.

[0059] In specific implementation, first, the system will initialize an empty data structure, which is usually a dictionary (Dictionary), Hash Map or similar associative array supporting key-value pair (Key-Value) storage in programming practice. This empty data structure is the carrier of the first list item feature dictionary. Then, the system will traverse the regular result. Each key-value pair (such as key'strength grade' and value 'C35') in it is added to the newly created empty dictionary; then, the system will traverse each element (i.e. each entity-category pair) in the NER result. Similarly, the category (such as 'process') is taken as the key, and the entity content (such as 'cast-in-place') is taken as the value, which is also added to the dictionary being constructed. By sequentially processing and adding all information in the regular result and the NER result, the original empty dictionary is gradually filled to obtain the first list item feature dictionary.

[0060] In particular, the S4 performs a coarse screening of the standard quota library to obtain a coarse screening candidate matching list based on the item code string in the first bill item and the first bill item feature dictionary. Specifically, in one specific example of the present application, first, based on the item code string, a code-based hierarchical filtering is performed on the standard quota library to obtain a first coarse screening candidate matching set. It should be understood that the item code of the bill of quantities is a product of national or industry standardization, and each bit or each segment represents a specific engineering category, sub-item or sub-purpose. Therefore, by matching the prefix of the code, the search space can be directly limited to the quota items belonging to the same large category as the to-be-matched item, for example, directly separating "earthwork engineering" from "concrete engineering". This high-level filtering based on structured information not only is extremely efficient in calculation, but also fundamentally excludes a large number of completely irrelevant quota items, and is the basis for ensuring the accuracy of subsequent screening.

[0061] In specific implementation, the standard quota library can be coarsely screened by the following steps: first, the code prefix of the item code string is extracted. That is, the system extracts the important prefix part of the complete code string representing the classification hierarchy according to the preset rule or length, usually by taking the first N characters of the string; and then, the code prefix is used as a query index to return a first coarse screening candidate matching set from the standard quota library. Here, at the database level, in order to achieve efficient query, the code field of the standard quota library has usually been indexed, and after the database performs this query, a set containing all the quota items satisfying the hierarchical classification condition is returned, that is, the first coarse screening candidate matching set.

[0062] The code prefix represents the high-level category of the item in the entire engineering classification system. For example, in a 12-bit code, the first 2, 4 and 6 bits may respectively represent the engineering major category, the divisional engineering and the sub-item engineering.

[0063] Taking the scheme of the present application as an example, first, the code prefix of the item code string "010401001001" is extracted, for example, the first 6 bits "01040", which represents "civil engineering-concrete and reinforced concrete engineering-pouring concrete beam"; and then, the code prefix "01040" is used as an index to query the standard quota library, and all the quota items with this prefix are returned to form the first coarse screening candidate matching set.

[0064] Then, based on the first list item feature dictionary, the standard quota library is filtered by core feature keyword reverse index to obtain a second rough screening candidate matching set. It should be understood that the first list item feature dictionary can contain multiple features, such as components, materials, processes, specifications, etc., but not all features have the same degree of distinction and importance. For example, in a concrete engineering matching, the "component" type (such as "rectangular beam") and the "process" (such as "cast-in-place") are usually more core defining than general material descriptions (such as "reinforced concrete"). By actively selecting these most representative core feature keywords through preset rules, the subsequent retrieval process can be more focused and efficient, avoiding the introduction of a large number of irrelevant candidate items due to the matching of some secondary or general features, thereby ensuring the accuracy of content filtering from the source.

[0065] In implementation, the standard quota library can be filtered by core feature keywords reverse index in the following steps: first, extract the first core keyword and the second core keyword from the first list item feature dictionary. In this process, the system first receives the first list item feature dictionary as input, which is a set of key-value pairs. The system is internally configured with a feature priority list or a set of selection rules that define the importance ranking of different feature types (i.e. the "key" of the dictionary). For example, the rule may stipulate that "component" is the highest priority and "process" is the second highest priority. When executed, the system will search for the corresponding key in the input feature dictionary according to this priority order. It will first check if the "component" key exists, and if it does, the corresponding value will be used as the first core keyword; then it will search for the "process" key, and if it exists, the corresponding value will be used as the second core keyword. Then, use the first core keyword and the second core keyword as query indexes to return the third rough screening candidate matching subset and the fourth rough screening candidate matching subset from the standard quota library. Here, the data structure of the query index is similar to a huge dictionary, with "keys" being all possible keywords that can appear in the description of the quota library (such as "rectangular beam" and "cast-in-place"), and "values" being a list containing the unique identifiers (IDs) of all quota items containing this keyword. When the system receives the first core keyword extracted in the previous step, it directly uses the keyword as a query key to search in the reverse index and instantly obtains the corresponding ID list, i.e. the third rough screening candidate matching subset; similarly, the system queries with the second core keyword to obtain another ID list, i.e. the fourth rough screening candidate matching subset. Among them, the reverse index is a core data structure used to store the mapping from a word to a list of documents containing the word. Then, take the intersection of the third rough screening candidate matching subset and the fourth rough screening candidate matching subset to obtain the second rough screening candidate matching set. In the technical solution of the present application, by taking the intersection, the system can accurately lock the candidates that are consistent with the to-be-matched item in multiple core semantic dimensions, thereby greatly improving the precision of content filtering and providing a high-quality candidate pool for the final matching result. In this process, the system receives the two quota item ID lists generated in the previous step (i.e. the third and fourth rough screening candidate matching subsets) as input, then the system calls a set intersection function that efficiently finds the IDs that exist in both lists and puts these common IDs into a new list or set to obtain the second rough screening candidate matching set.

[0066] Further, the first rough screening candidate matching set and the second rough screening candidate matching set are subjected to an intersection operation to obtain a rough screening candidate matching list. It should be understood that the first rough screening candidate matching set ensures that the candidate item is correct in the engineering classification hierarchy (such as “cast-in-place concrete beam engineering”); and the second rough screening candidate matching set ensures that the candidate item is relevant in the core semantic content (such as containing “rectangular beam” and “cast-in-place” features). However, each of the two sets may have limitations. For example, the first set may contain items that are under the same classification but do not match the content (such as “cast-in-place L-shaped beam”), and the second set may contain items that are similar in content but have classification errors. Using either set alone cannot guarantee the highest matching quality. Therefore, in the technical solution of the present application, the first rough screening candidate matching set and the second rough screening candidate matching set are subjected to an intersection operation to accurately find those items that are both correct in classification and relevant in core content, thereby eliminating all interference items that only meet a single condition, greatly reducing the burden of the subsequent final matching link, and fundamentally improving the accuracy and efficiency of the entire matching process.

[0067] In particular, the S5 calculates a final fusion score between the first list item and each to-be-matched item in the rough screening candidate matching list based on the item description text of the first list item and the first list item feature dictionary to obtain a final matching ranking list. Specifically, in one specific example of the present application, first, a semantic similarity score between the first list item and each to-be-matched item is calculated based on the item description text of the first list item. It should be understood that the item description text is natural language, and its expression is flexible and varied, for example, “cast-in-place concrete beam” and “concrete beam, cast-in-place” are very different in literal terms, but are highly consistent in semantics. Traditional keyword matching or simple text comparison cannot effectively handle such synonymous different forms. Therefore, in the technical solution of the present application, the semantic similarity score between the first list item and each to-be-matched item is calculated to measure the closeness of the meanings of the two texts, and the higher the score, the more similar the meanings.

[0068] In specific implementation, first, the item description text of the first list item is subjected to text embedding coding to obtain a first list item item description text embedding coding vector. It should be understood that the engineering list item description text (such as “cast-in-place reinforced concrete C35 rectangular beam”) contains a large number of professional terms, compound structures and implicit semantic relationships, and traditional text processing methods are difficult to accurately quantify the deep semantics. Therefore, in the technical solution of the present application, the item description text of the first list item is subjected to text embedding coding, so that the system can learn the deep meanings of words and sentences in a specific context and map them to a specific coordinate point in a high-dimensional vector space.

[0069] In implementation, the item description text of the first list item can be input into the text semantic encoder based on the Bert model to obtain the first list item description text embedding coding vector.

[0070] Subsequently, the cosine similarity between the first list item description text embedding coding vector and the semantic vector of each to-be-matched item is calculated as a semantic similarity score. It should be understood that the item description text (such as “cast-in-place reinforced concrete C35 rectangular beam”) contains a large number of professional terms, synonymous expressions and implied process features, and simple keyword matching or feature dictionary comparison cannot capture the overall semantic association of the text. The cosine similarity calculation can convert such semantic relationship into a quantifiable geometric relationship through the direction comparison in the vector space. Therefore, in the technical solution of the present application, the cosine similarity between the first list item description text embedding coding vector and the semantic vector of each to-be-matched item is calculated to break through the limitation of the surface string and evaluate the similarity of the list item and the quota item from the semantic level, thereby providing a semantic dimension independent of feature matching for the subsequent fusion score.

[0071] Then, based on the first list item feature dictionary of the first list item, the feature matching score between the first list item and each to-be-matched item is calculated. It should be understood that although the semantic similarity can grasp the overall meaning, it is not sensitive enough to the key parameters with slight differences in the engineering field (such as concrete strength “C35” and “C40”), therefore, in the technical solution of the present application, the feature matching score between the first list item and each to-be-matched item is calculated to check each extracted key feature (such as component, process, strength grade, etc.) one by one. In this way, the ambiguity of semantic matching is made up, and it is ensured that the final matching result is rigorous and accurate on all key engineering parameters, thereby providing a “rigid” guarantee and high explainability for the matching result.

[0072] In implementation, first, the key features of each to-be-matched item are extracted to obtain a matching item feature dictionary. In one specific example of the present application, the key features of each to-be-matched item can be extracted by the following steps: first, regular expression matching is performed on each to-be-matched item based on a regular expression engine to obtain a second regular expression result and a second text for NER; the second text for NER is input into a second NER model to obtain a second NER result; and the second regular expression result and the second NER result are combined to obtain the matching item feature dictionary.

[0073] Subsequently, the first inventory item feature dictionary and the matching item feature dictionary are input into a feature matching scoring function to obtain a feature matching score. Here, the feature matching scoring function solidifies the complex, multi-dimensional feature comparison logic into a formalized, repeatable algorithm. In addition to being able to determine whether the features match, it can also give an accurate, standardized score according to the degree of matching and the inherent importance of each feature, thereby providing a solid, reliable and highly interpretable input for the final fusion score calculation.

[0074] wherein the feature matching scoring function is a core software algorithm module that codes the business logic of comparing two feature dictionaries, and this function is configurable, for example, by adjusting the weights of different features to adapt to different engineering fields or matching requirements. The feature matching score is a standardized numerical value (usually between 0 and 1). This score is not a subjective judgment, but a quantitative measure of the similarity of the two items at the structured feature level calculated by a rigorous algorithm. The higher the score, the higher the degree of agreement between the two in key engineering parameters.

[0075] In specific implementation, first, the first inventory item feature dictionary and the matching item feature dictionary are input into the feature matching scoring function, and the function will calculate according to the pre-set scoring strategy. A typical and efficient implementation is to use a weighted matching degree algorithm. First, the system will load a pre-set feature weight mapping table, which assigns a numerical weight to each possible feature type (such as "member", "process", "strength grade") to reflect its importance in engineering matching. In this process, the function will systematically traverse each key-value pair in the first inventory item feature dictionary. For each feature, for example, the key is "member" and the value is "rectangular beam", the function will check if there is the same key "member" in the "matching item feature dictionary". If it exists, it will further compare the values. Only when the same key exists in both dictionaries and the values corresponding to the key are exactly the same, is the feature considered to be a successful match. Once a feature is confirmed to be a successful match, the function will add the weight value corresponding to the feature type in the weight mapping table to a matching total variable initially set to zero. After traversing all the features in the first inventory item feature dictionary, the function will obtain a cumulative matching total score. In order to make the final feature matching score a standardized value between 0 and 1, so as to facilitate subsequent weighted fusion, the function will perform a normalization operation.

[0076] Further, a weighted sum of the semantic similarity score and the feature matching score is calculated to obtain a final fusion score. It should be understood that the semantic similarity score, while being good at handling synonyms and changes in word order, can not be sensitive enough to subtle differences in some key technical parameters (for example, the difference between C35 and C40 can not be reflected in the semantic vector); while relying solely on the feature matching score, although it is extremely strict in checking key parameters, it cannot handle cases where the expression is flexible but the meaning is consistent. Therefore, in the technical solution of the present application, the two evaluation methods are fused, and here, by adjusting the weight coefficients and , the system can dynamically determine whether to focus more on the overall semantic fit or on the strict consistency of key features according to different engineering fields and different matching accuracy requirements. This configurable fusion strategy makes the final matching result both comprehensive and controllable, thereby achieving accuracy and adaptability far beyond a single evaluation system.

[0077] Specifically, the weighted sum of the semantic similarity score and the feature matching score is calculated to obtain a final fusion score, and the formula is as follows:

[0078]

[0079] wherein, is the semantic similarity score, is the feature matching score, and are the first weight and the second weight.

[0080] Here, the first weight is greater than the second weight, the first weight is 0.6 and the second weight is 0.4.

[0081] In particular, the S6 extracts and displays the to-be-matched items with the top-3 final fusion scores from the final matching ranking list. In specific implementation, the system starts from the first element of the list (i.e., the element with the highest score with an index of 0) and continuously extracts a specified number of elements. In the present application, this number is set to 3. Therefore, the system extracts the three elements with indexes of 0, 1 and 2 to form a new sub-list containing only the top three matching items.

[0082] To sum up, the engineering quantity list intelligent matching method according to the embodiment of the present application is illustrated, which firstly forms a key feature dictionary through deep analysis of the project description, constituting the basis for subsequent accurate matching; then, a two-stage process of "coarse screening-precise sorting" is adopted: in the coarse screening stage, the project code pointing to the professional classification is combined with the key features capable of quickly locking the core elements, the huge standard quota library is efficiently filtered, and a candidate matching list of controllable size and high relevance is quickly generated; in the precise sorting stage, more detailed semantic and feature double verification is turned to, the deep semantic similarity of the complete project description text and the accurate comparison result of the key feature dictionary are comprehensively utilized, the final score is obtained through fusion calculation, and the accurate sorting of the candidate list is realized. In this way, the semantic gap caused by synonyms, reversed order of words, non-standard expressions and the like in the traditional text matching can be effectively overcome, and the accuracy of the matching is greatly improved.

[0083] The above has described various embodiments of the present disclosure, and the above description is exemplary, not exhaustive, and is not limited to the disclosed embodiments. Many modifications and changes are obvious to those skilled in the art without departing from the scope and spirit of the described embodiments. The selection of the terms used herein is intended to best explain the principles, practical application or improvement of the technology in the market of the embodiments, or to enable other ordinary skilled in the art to understand the embodiments disclosed herein.

Claims

1. A method for intelligent matching of bill of quantities, characterized in that, include: The original bill of quantities file is processed to obtain a structured bill of quantities data table; Extract the first list item from the structured list data table. The first list item includes an item code string and an item description text. Key features are extracted from the item description text in the first list item to obtain the feature dictionary of the first list item; Based on the item code string in the first list item and the feature dictionary of the first list item, the candidate set of the standard quota library is coarsely screened to obtain a coarsely screened candidate matching list. Based on the item description text and feature dictionary of the first list item, the final fusion score between the first list item and each item to be matched in the coarsely screened candidate matching list is calculated to obtain the final matching ranking list, including: Based on the item description text of the first list item, calculate the semantic similarity score between the first list item and each item to be matched; Based on the feature dictionary of the first list item, calculate the feature matching score between the first list item and each item to be matched; The weighted sum of the semantic similarity score and the feature matching score is calculated to obtain the final fusion score; Extract and display the top three matches from the final match sort list.

2. The intelligent matching method for bill of quantities according to claim 1, characterized in that, The obtained original bill of quantities file is processed to obtain a structured bill of quantities data table, including: Perform file type identification on the original bill of quantities file to obtain the file type identification results; Based on the file type identification results, a suitable parser is selected, and the original engineering bill of quantities file is parsed based on the suitable parser to obtain the raw data after preliminary parsing. The original data after preliminary parsing is used to locate the table header and map the columns to obtain a dictionary of data rows and column mapping relationships; Based on the column mapping relationship dictionary, after filtering and fine-grained cleaning of the data rows, structured data objects are generated to obtain a structured list data table.

3. The intelligent matching method for bill of quantities according to claim 1, characterized in that, Key features are extracted from the item description text in the first list item to obtain the feature dictionary of the first list item, including: The project description text is matched using a regular expression engine to obtain regular expression results and text for NER. Input the text to be used for NER into the NER model to obtain NER results; The regularization results and NER results are merged to obtain the first list of feature dictionaries.

4. The intelligent matching method for bill of quantities according to claim 1, characterized in that, Based on the item code string and feature dictionary of the first list item, the standard quota library is coarsely screened to obtain a coarsely screened candidate matching list, including: Based on the project's coded string, hierarchical filtering based on the code is performed on the standard quota library to obtain the first coarse-screen candidate matching set; Based on the first list item feature dictionary, the standard quota library is filtered by reverse indexing of core feature keywords to obtain the second coarse screening candidate matching set; Perform an intersection operation on the first coarse-screened candidate matching set and the second coarse-screened candidate matching set to obtain the coarse-screened candidate matching list.

5. The intelligent matching method for bill of quantities according to claim 4, characterized in that, Based on the project's coded string, a hierarchical filtering process based on the code is performed on the standard quota library to obtain the first coarse-screen candidate matching set, including: Extract the encoding prefix from the project's encoded string; Using the encoded prefix as the query index, the first coarse-screened candidate matching set is returned from the standard quota library.

6. The intelligent matching method for bill of quantities according to claim 4, characterized in that, Based on the first list of item feature dictionaries, the standard quota library is filtered using a reverse index of core feature keywords to obtain a second coarse-screened candidate matching set, including: Extract the first and second core keywords from the feature dictionary of the first list item; Using the first and second core keywords as query indexes respectively, the third and fourth coarse-screened candidate matching subsets are returned from the standard quota database; The intersection of the third and fourth coarse-screened candidate matching subsets is used to obtain the second coarse-screened candidate matching set.

7. The intelligent matching method for bill of quantities according to claim 6, characterized in that, Based on the item description text of the first list item, calculate the semantic similarity score between the first list item and each item to be matched, including: The item description text of the first list item is text-embedded and encoded to obtain the item description text embedding and encoding vector of the first list item. The cosine similarity between the embedded encoding vector of the first item description text and the semantic vector of each item to be matched is calculated as the semantic similarity score.

8. The intelligent matching method for bill of quantities according to claim 6, characterized in that, Based on the feature dictionary of the first list item, the feature matching score between the first list item and each of the items to be matched is calculated, including: Key features are extracted from each item to be matched to obtain a feature dictionary for the matching items; Input the first list item feature dictionary and the matching item feature dictionary into the feature matching scoring function to obtain the feature matching score.

9. The intelligent matching method for bill of quantities according to claim 6, characterized in that, Calculating the weighted sum of the semantic similarity score and the feature matching score to obtain the final fusion score includes: calculating the weighted sum of the semantic similarity score and the feature matching score to obtain the final fusion score using the following formula, wherein the formula is: in, The semantic similarity score. For feature matching scores, and These are the first and second weights.

Citation Information

Patent Citations

  • Supply and demand matching method for digital science and technology personalized service

    CN120196736A

  • Service keyword extraction method, apparatus, and device, and storage medium

    WO2022134575A1