模組:Conversion rule extractor/Matcher/doc
外觀

此頁面為 Module:Conversion rule extractor/Matcher 的說明文件
![]() | 此頁面是Module:Conversion rule extractor/Matcher的模組文件。 此頁面可能包含了模板的使用說明、分類和其他內容。 |
子模組:負責將字詞轉換規則與目標文本內容進行匹配。
使用Trie樹算法來高效地查找文本中是否存在規則中定義的源詞語。
公共函數
[編輯]filterRules
[編輯]篩選規則列表,只保留那些源文本能在目標頁面內容或指定文本中找到的規則。
參數:
- rulesList: (必須) table,包含待篩選的、已規範化的規則字串的列表。
- targetPageTitleOrText: (必須) string|table,匹配目標。可以是:
- 頁面標題 (string): 將獲取該頁面的內容進行匹配。
- 直接文本內容 (string): 直接在該文本上進行匹配。
- MediaWiki title 對象 (table): 將獲取該對象對應頁面的內容進行匹配。
返回值: table: 一個新的列表,僅包含源文本在目標中匹配成功的規則字串。 如果輸入 rulesList 為空、無法獲取目標內容或目標內容為空,返回空列表 `{}`。
filterRulesAgainstTitleText
[編輯]篩選規則列表,只保留那些源文本能在指定頁面的標題文本(不含命名空間)中找到的規則。
參數:
- rulesList: (必須) table,包含待篩選的、已規範化的規則字串的列表。
- pageTitle: (必須) string,目標頁面的標題。
返回值: table: 一個新的列表,僅包含源文本在頁面標題文本中匹配成功的規則字串。 如果輸入 rulesList 為空、頁面標題無效或標題文本為空,返回空列表 `{}`。
內部函數
[編輯]extractRuleSources
[編輯]從單個規範化的規則字串中提取所有可能的源文本(即需要被匹配的詞語)。 處理單向規則 (A=>B 提取 A) 和雙向規則 (lang:A 提取 A)。
參數:
- ruleString: (字串) 已規範化的規則字串。
返回值: table: 包含從規則中提取出的所有源文本字串的列表(已去重)。
buildRuleTrie
[編輯]根據規則列表構建一個Trie樹,用於快速匹配。 Trie 的節點代表字元,葉子節點存儲包含以該路徑為源文本的規則在原始列表中的索引。
參數:
- rulesList: (table) 包含規則字串的列表。
返回值: table: 構建好的Trie樹。
matchTextWithTrie
[編輯]使用構建好的 Trie 樹在給定的文本中查找所有匹配的規則。
參數:
- text: (字串) 要在其中進行查找的文本內容。
- trie: (table) 使用buildRuleTrie構建的Trie樹。
返回值: table: 一個集合(表),其鍵是匹配到的規則在原始列表中的索引,值為true。