TW202305582A - 字串比對方法及系統 - Google Patents
字串比對方法及系統 Download PDFInfo
- Publication number
- TW202305582A TW202305582A TW110126547A TW110126547A TW202305582A TW 202305582 A TW202305582 A TW 202305582A TW 110126547 A TW110126547 A TW 110126547A TW 110126547 A TW110126547 A TW 110126547A TW 202305582 A TW202305582 A TW 202305582A
- Authority
- TW
- Taiwan
- Prior art keywords
- string
- character string
- comparison
- ratio
- character
- Prior art date
Links
Images
Landscapes
- Character Input (AREA)
Abstract
一種字串比對方法,由一處理器執行儲存於一電腦可讀媒體中的程式指令而實現,包括一讀取字串步驟、一預處理步驟、一計算步驟,以及一評分步驟。讀取字串步驟包括讀取一第一字串及一第二字串。預處理步驟依據一預設的字串前處理規則使該第一字串與第二字串格式統一。計算步驟計算第一字串的每一字元出現在第二字串中的一第一比率,以及第二字串的每一字元出現在第一字串中的一第二比率。評分步驟依據該第一比率及該第二比率決定一有關於該第一字串與該第二字串是否高度相關的結果並輸出。
Description
本發明是有關於一種文字比對方法及系統,尤其是指一種包含中文字的字串比對方法及系統。
生活中有許多時候,例如銀行開戶、申辦信用卡、填寫保險單等,需要填寫任職公司行號或就讀學校名稱等資料。然而這些資料往往有多種簡稱、俗稱或舊稱,例如「中國石油化學工業開發股份有限公司」,簡稱「中石化」,兩個名稱都代表同一公司。
對於這些資料的處理,除了多樣的稱呼方式之外,當資料包含中文字時還常因為中文有異體字、繁體與簡體等不同呈現方式,或使用了罕見字,或因錯別字或光學字元辨識(OCR)等狀況導致編碼後出現亂碼,最終導致資料不易判讀、資料不齊全等問題。在這種情況下,對於該等資料的識別及進一步分析使用也就變得困難。
因此,本發明之目的,在於提供一種字串比對方法,可有效辨識高度相關的名稱。
本發明字串比對方法由一處理器執行儲存於一電腦可讀媒體中的程式指令而實現,包括一讀取字串步驟、一預處理步驟、一計算步驟,以及一評分步驟。
該讀取字串步驟係包括讀取一第一字串及一第二字串。該預處理步驟依據一預設的字串前處理規則使該第一字串與第二字串格式統一。該計算步驟包括計算第一字串的每一字元出現在第二字串中的一第一比率,以及第二字串的每一字元出現在第一字串中的一第二比率。該評分步驟係依據該第一比率及該第二比率決定一有關於該第一字串與該第二字串是否高度相關的結果並輸出。
在一些實施例中,還包含在該讀取字串步驟之後的基本檢查步驟:針對各該第一字串及第二字串檢查是否符合一預設的基本狀況,若符合則輸出結果,並結束流程。
在一些實施例中,該基本狀況及對應的輸出結果包含以下之一者:其中一字串為空字串,則輸出比對失敗;該二字串完全相等,則輸出比對符合;其中一字串被另一字串完整涵蓋,則輸出比對符合。
在一些實施例中,該預處理步驟的字串前處理規則包括針對該第一字串與該第二字串進行以下至少一者:使字元的全形、半形統一;使字元的大寫、小寫統一;移除預設的特殊符號;代換異體字、簡體字、錯別字及錯誤字符;及移除無比對意義的預設字詞。
在一些實施例中,該預處理步驟還包括對該第一字串與第二字串檢查是否具有相同性質的特定字詞,若是則同步移除該特定字詞。
在一些實施例中,該評分步驟包括:當該第一比率與該第二比率皆落在一特別區間,則決定該二字串屬於特別關係的相關並輸出比對符合。
在一些實施例中,該計算步驟還包括計算該第一比率與該第二比率的差值;其中該評分步驟包括判斷該差值是否大於等於一代表該第一字串與該第二字串長度差異過大的差值閥值,若是則輸出比對失敗。
在一些實施例中,該評分步驟若判斷該差值大於等於該差值閥值,還進一步進行一簡稱檢查,若通過該簡稱檢查則例外地輸出比對符合,若未通過簡稱檢查才輸出比對失敗;該簡稱檢查包括檢查以下要件是否全部符合:該第一比率與該第二比率其中之一為1;及該比率為1之字串當中的字元是依序地出現在另一字串中。
在一些實施例中,該計算步驟還包括計算一比對得分:該第一比率與該第二比率的平均值;及該評分步驟還包括依據該比對得分以及一預設的量表來決定該結果,該量表包括多個分別對應一結果的區間,當該比對得分落入其中一區間,則輸出該區間所對應的結果。
本發明之另一目的,在於提供一種字串比對系統。該系統包括一儲存有程式指令的電腦可讀媒體,及處理器。當處理器執行該程式指令,實現前述的字串比對方法。
本發明之功效在於:利用預處理、基本檢查以及特定的評分機制,解決字串比對時遇到的各種困難,有助於對於字串資料的識別及分析。
在本發明被詳細描述之前,應當注意在以下的說明內容中,類似的元件是以相同的編號來表示。
參閱圖1,本發明字串比對方法在一實施例中,可藉由一處理器91以及儲存有程式指令的電腦可讀媒體92來實現,當該處理器91執行指令時組配來實現字串比對方法,並透過一輸出裝置93輸出比對結果。在其他實施例,也可以是利用例如場域可編程邏輯閘陣列(field-programmable gate array,簡稱FPGA)或系統單晶片(system on chip)等硬體來實現,並且可採用單一裝置或分散式裝置來執行功能。
本發明字串比對方法之一實施例如圖2、3所示,針對任二字串(以下稱「字串A」、「字串B」)進行特定處理、運算及判斷是否高度相關,包括以下步驟。
步驟S1—讀取字串A及字串B。
步驟S2—基本檢查。針對字串A及字串B各自檢查是否符合一預設的基本狀況,若符合則輸出結果,並結束流程,藉此減少運算量。在本實施例,預設的基本狀況的檢查,包括以下三種,沒有先後順序。
步驟S21—檢查字串A、字串B是否有空字串?若檢查到任一為空字串,則輸出比對失敗,代碼為False_Null (S210),並結束流程。
步驟S22—檢查字串A、字串B是否完全相等?若檢查到兩者完全相等,則輸出比對符合,代碼為True_EQ (S220),並結束流程。
步驟S23—檢查字串A是否完整不分離地出現在字串B之中、或者字串B是否完整不分離地出現在字串A之中?若是,則輸出比對符合,代碼為True_IN (S230),並結束流程。
以上基本狀況之檢查,若無一符合,則進入預處理之流程。首先,先利用步驟S30確認是否已經過預處理?若無,則進行步驟S3預處理。請參閱圖3,預處理包含依據一預設的字串前處理規則使字串A與字串B格式統一,也就是字串前處理的步驟(步驟S31),以及依據一預設的同質性處理規則針對字串A與字串B同步移除相同性質用詞,也就是同質性檢查與處理的步驟(步驟S32)。其中,字串前處理具體來說包括:
步驟S311—字元格式統一。在本實施例,此步驟是使字串A與字串B當中的英文字母大小寫統一以及半形全形統一,例如全部轉換為大寫、半形。
步驟S312—排除預設的特殊符號。在本實施例,此步驟是排除空白符號、標點符號、數學符號等預設符號。
步驟S313—代換字元。在本實施例,該電腦可讀媒體92預先儲存常見錯別字與正確字元、OCR常見辨識錯誤字符與正確字元、簡體字與繁體字,以及異體字(例如臺與台)。當該處理器91執行此步驟,是檢查字串A及字串B是否存在常見錯別字、常見辨識錯誤字符、常見異體字,若有則替換為正確字元或者指定的異體字。
步驟S314—排除指定關鍵字。在本實施例中,為了後續計算得分時,不會因為無比對意義的特定字詞而使的比對得分過高、進而影響判斷,本實施例針對特定關鍵字予以排除。具體來說,當字串A或字串B有出現預設之關鍵字,例如「基金會」、「集團」、「股份」等,則排除該關鍵字。
接下來,預處理當中的同質性檢查與處理具體來說包括以下步驟:
步驟S321—檢查兩字串是否具有相同性質?在本實施例,相同性質的判斷,是檢查字串A與字串B是否同時存在特定字詞,而落入同一預設群組。該等特定字詞以及其對應的群組是預先儲存於電腦可讀媒體92中以供比對判斷。具體舉例來說,本步驟檢查字串A與字串B是否存在特定字詞而落入相同的地域群組(例如台北市、北市)、學校群體(例如國小、國民小學、小學) 、不動產產業(例如房屋、地產),或醫院群體(例如診所、醫院)。若是,則屬相同性質,移除該特定字詞(步驟S322),若否則結束預處理。
步驟S322舉例來說,字串A與字串B一個存在「台北市」另一存在「北市」,由於落入相同的地域群組,因此移除「台北市」「北市」;但是當一個字串有「北市」另一個為「新北市」,是屬於不同的地域群組,不會移除該等字詞。
當字串A與字串B經過預處理(步驟S3),或者經判斷已經過預處理(步驟S30),即可進入計分步驟S4。在本實施例,計分步驟包括計算字串A的每一字元出現在字串B中的一「第一比率」,以及字串B的每一字元出現在字串A中的一「第二比率」。此外,還計算該第一比率與該第二比率相減取絕對值的「差值」,以及該第一比率與該第二比率的平均值作為字串A與字串B的「比對得分」。接著,進行以下一連串的評分步驟,藉此得知關於字串A與字串B是否高度相關的結果並輸出。本發明的評分步驟不以特定順序為限,以下僅為舉例說明。
步驟S51—首先判斷第一比率與第二比率是否皆落在一接近但未達比對閥值的特別區間內,比對閥值例如0.51,特別區間例如大於等於0.4但小於等於0.5(也就是設定一個未達比對閥值的數值)。若是兩個比率值皆落在該特別區間內,代表字串A與字串B互相涵蓋但又不到高度相關,屬於特別關係的相關適合提取出來另作分析,並在本實施例設定輸出比對符合,代碼為True_SPECIAL (S510)。
步驟S52—若非在上述的特別區間內,則判斷差值是否大於等於一代表該第一字串與該第二字串長度差異過大的差值閥值,差值閥值例如0.7。若是,則代表兩字串長度差異過大,原則上屬於比對失敗,但本實施例接著進行步驟S53進一步進行簡稱檢查。反之,若差值小於差值閥值,則進行步驟S54,判斷得分在何區間。
步驟S53—簡稱檢查。本實施例所採用簡稱檢查包括檢查以下要件是否全部符合:第一比率與第二比率其中之一為1 (也就是其中一字串的字元100%出現在另一字串);及比率為1之字串當中的字元是依序地出現在另一字串中。若通過該簡稱檢查則例外地輸出比對符合,代碼為True_ABBREVIATION (S531),若未通過簡稱檢查則輸出比對失敗(S532)。
舉例來說,字串A為「中石化」、字串B為「中國石油化學工業開發」,則第一比率為1,第二比率為0.3,差值為0.7。在步驟S52會判斷為差值大於等於差值閥值,因此進行簡稱檢查。此例的「中石化」全數出現在「中國石油化學工業開發」中,第一比率為1,且「中石化」是由左至右依序地出現在「中國石油化學工業開發」第一、三、五的位置而非交錯地出現,符合了簡稱檢查的兩個要件。再舉例來說,例如「工業化」就不符合簡稱檢查的第二個要件,無法通過簡稱檢查。
步驟S54—依據該比對得分以及一預設的量表來決定該結果,該量表包括多個分別對應一結果的區間,當該比對得分落入其中一區間,則輸出該區間所對應的結果。以本實施例來說,比對得分為0的情況下(S55),代表沒有任何字元符合,輸出比對失敗(S550);比對得分小於等於0.3的情況下(S56),代表未達低標,也是輸出比對失敗(S560);比對得分大於0.3但小於比對閥值0.51的情況下(S57),代表未達高標,也是輸出比對失敗(S570)。前述三種狀況雖然都是輸出比對失敗,但可以各自有其代碼以用來分析,以做為調整比對閥值的依據。至於,當比對得分大於等於比對閥值0.51 (S58),代表字串A與字串B屬高度相關,輸出比對符合,代碼True_HIT (S580)。
綜上所述,本發明先對比對的兩個字串進行基本檢查以針對預設的基本狀況進行判斷,若獲得結果即可減少運算量;此外,本發明之預處理可提高比對判斷的精準度,輔以特定的評分方式,可確實評估兩字串的相關程度,故確實能達成本發明之目的。
惟以上所述者,僅為本發明之實施例而已,當不能以此限定本發明實施之範圍,凡是依本發明申請專利範圍及專利說明書內容所作之簡單的等效變化與修飾,皆仍屬本發明專利涵蓋之範圍內。
100:字串比對系統
91:處理器
92:電腦可讀媒體
93:輸出裝置
S1~S5:步驟
S21~S23:基本檢查步驟
S210, S220, S230:基本檢查結果
S30:判斷步驟
S31, S32:預處理步驟
S311~S314:字串前處理步驟
S321, S322:同質性檢查與處理步驟
S51~S58:評分步驟
S510, S531, S532, S550, S560, S570, S580:評分結果
本發明之其他的特徵及功效,將於參照圖式的實施方式中清楚地呈現,其中:
圖1是一方塊圖,說明本發明字串比對系統的一實施例;
圖2A、2B是說明本發明字串比對方法的一實施例的流程圖;及
圖3是圖2A中步驟S3的細部流程圖。
S1~S5:步驟
S21~S23:基本檢查步驟
S210,S220,S230:基本檢查結果
S30:判斷步驟
S51~S58:評分步驟
S510,S531,S532,S550,S560,S570,S580:評分結果
Claims (10)
- 一種字串比對方法,由一處理器執行儲存於一電腦可讀媒體中的程式指令而實現,該方法包含: 讀取字串:讀取一第一字串及一第二字串; 預處理:依據一預設的字串前處理規則使該第一字串與第二字串格式統一; 計算;計算第一字串的每一字元出現在第二字串中的一第一比率,以及第二字串的每一字元出現在第一字串中的一第二比率;及 評分:依據該第一比率及該第二比率決定一有關於該第一字串與該第二字串是否高度相關的結果並輸出。
- 如請求項1所述的字串比對方法,還包含在該讀取字串步驟之後的基本檢查步驟:針對各該第一字串及第二字串檢查是否符合一預設的基本狀況,若符合則輸出結果,並結束流程。
- 如請求項2所述的字串比對方法,其中,該基本狀況及對應的輸出結果包含以下之一者:其中一字串為空字串,則輸出比對失敗;該二字串完全相等,則輸出比對符合;其中一字串被另一字串完整涵蓋,則輸出比對符合。
- 如請求項1所述的字串比對方法,其中,該預處理步驟的字串前處理規則包括針對該第一字串與該第二字串進行以下至少一者:使字元的全形、半形統一;使字元的大寫、小寫統一;移除預設的特殊符號;代換異體字、簡體字、錯別字及錯誤字符;及移除無比對意義的預設字詞。
- 如請求項1所述的字串比對方法,其中,該預處理步驟還包括對該第一字串與第二字串檢查是否具有相同性質的特定字詞,若是則同步移除該特定字詞。
- 如請求項1所述的字串比對方法,其中,該評分步驟包括:當該第一比率與該第二比率皆落在一特別區間,則決定該二字串屬於特別關係的相關並輸出比對符合。
- 如請求項1所述的字串比對方法,其中,該計算步驟還包括計算該第一比率與該第二比率的差值;其中該評分步驟包括判斷該差值是否大於等於一代表該第一字串與該第二字串長度差異過大的差值閥值,若是則輸出比對失敗。
- 如請求項7所述的字串比對方法,其中,該評分步驟若判斷該差值大於等於該差值閥值,還進一步進行一簡稱檢查,若通過該簡稱檢查則例外地輸出比對符合,若未通過簡稱檢查才輸出比對失敗;該簡稱檢查包括檢查以下要件是否全部符合: 該第一比率與該第二比率其中之一為1;及 該比率為1之字串當中的字元是依序地出現在另一字串中。
- 如請求項1所述的字串比對方法,其中,該計算步驟還包括計算一比對得分:該第一比率與該第二比率的平均值;及 該評分步驟還包括依據該比對得分以及一預設的量表來決定該結果,該量表包括多個分別對應一結果的區間,當該比對得分落入其中一區間,則輸出該區間所對應的結果。
- 一種字串比對系統,包含: 一電腦可讀媒體,儲存有程式指令;及 一處理器,當執行該程式指令,實現該請求項1至9中任一項所述的字串比對方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110126547A TW202305582A (zh) | 2021-07-20 | 2021-07-20 | 字串比對方法及系統 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110126547A TW202305582A (zh) | 2021-07-20 | 2021-07-20 | 字串比對方法及系統 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202305582A true TW202305582A (zh) | 2023-02-01 |
Family
ID=86661355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110126547A TW202305582A (zh) | 2021-07-20 | 2021-07-20 | 字串比對方法及系統 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TW202305582A (zh) |
-
2021
- 2021-07-20 TW TW110126547A patent/TW202305582A/zh unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11687719B2 (en) | Post-filtering of named entities with machine learning | |
US7171350B2 (en) | Method for named-entity recognition and verification | |
EP3358471A1 (en) | Systems and methods for assessing quality of input text using recurrent neural networks | |
US8489388B2 (en) | Data detection | |
EP3640847A1 (en) | Systems and methods for identifying form fields | |
RU2760471C1 (ru) | Способы и системы идентификации полей в документе | |
CN115240213A (zh) | 表格图像识别方法、装置、电子设备及存储介质 | |
CN115100668A (zh) | 识别图像中表格信息的方法和装置 | |
JP2019212115A (ja) | 検査装置、検査方法、プログラム及び学習装置 | |
TWM620558U (zh) | 字串比對系統 | |
EP2138959A1 (en) | Word recognizing method and word recognizing program | |
TW202305582A (zh) | 字串比對方法及系統 | |
CN114677689B (zh) | 一种文字图像识别纠错方法和电子设备 | |
US20230075290A1 (en) | Method for linking a cve with at least one synthetic cpe | |
CN112541505B (zh) | 文本识别方法、装置以及计算机可读存储介质 | |
CN114663886A (zh) | 文本识别方法、模型的训练方法及装置 | |
CN114065762A (zh) | 一种文本信息的处理方法、装置、介质及设备 | |
CN114220113A (zh) | 一种论文质量检测方法、装置和设备 | |
JP2022095391A (ja) | 情報処理装置、及び情報処理プログラム | |
CN112101019A (zh) | 一种基于词性标注和组块分析的需求模板符合性检查优化方法 | |
EP3640861A1 (en) | Systems and methods for parsing log files using classification and a plurality of neural networks | |
WO2007041328A1 (en) | Detecting segmentation errors in an annotated corpus | |
WO2021075998A1 (ru) | Система классификации данных для выявления конфиденциальной информации в тексте | |
CN110472243A (zh) | 一种中文拼写检查方法 | |
US20240143632A1 (en) | Extracting information from documents using automatic markup based on historical data |