簡體   English   中英

對HTML文檔執行拼寫檢查的高效算法

[英]efficient algorithm to perform spell check on HTML document

我有一個HTML文檔,一個常見的拼寫錯誤列表以及每種情況的正確拼寫。 HTML文檔最多約50頁,並且有約30K拼寫更正條目。

更正此HTML文檔中所有拼寫錯誤的有效方法是什么?
(注意:如果您知道任何相關的庫,我的實現將在Python中進行。)


我想到了兩種可能的方法:

  • 建立拼寫數據的哈希表
  • 從HTML解析文本
  • 通過空格將文本拆分為標記
  • 如果拼寫哈希表中的標記替換為更正
  • 用更新的文本構建新的HTML文檔

這種方法將無法進行多字拼寫更正,而該更正將存在。 以下是適用於多字的更簡單但看似效率較低的方法:

  • 重復拼寫數據
  • 在HTML文檔中搜索單詞
  • 如果單詞存在,請更正

您是正確的,第一種方法將比第二種方法快得多(此外,我建議您嘗試使用Tries而不是直接的散列,對於3萬個單詞,節省的空間將是非常可觀的)。

為了仍然能夠處理多單詞的情況,您可以跟蹤先前的標記,從而檢查哈希以獲取組合字符串,例如“ prev cur”。

否則,您可以將多詞更正排除在哈希之外,並結合兩種方法,首先對單個詞使用哈希,然后對多詞組合進行掃描(反之亦然)。 如果多字校正的數量相對較少,這可能仍然相對較快。

請小心,拔出單詞標記比在空白處分割要復雜得多。 您不希望僅僅因為找不到散列中帶有逗號的“實例”而無法糾正錯誤。

我同意Rob提出的基於字符使用Trie的建議,因為很久以前我基於將有效單詞的字典存儲為Trie來編寫拼寫校正算法。 通過使用分支定界法,我能夠建議拼寫錯誤的單詞的正確拼寫(根據Levenshtein距離 )。 此外,由於特里只是一個很大的有限狀態機,因此添加通用的前綴和后綴相當容易,因此它可以處理“后國家化主義”之類的“詞”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM