跳至內容

模組:Conversion rule extractor/Matcher/doc

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

此頁面為 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。