7

テキストを分析して、禁止された単語が存在するようにする必要があります。ブラックリストが「禁止」という単語であるとします。言葉には多くの形があります。テキストでは、「禁じられている」、「禁じられている」、「禁じられている」などの単語を使用できます。単語を最初の形にするために、見出し語化のプロセスを使用します。あなたの提案は?

タイプミスはどうですか?
例: 「F0rb1d」。damerau-Levenshtein などを使用すると思います。あなたの提案は?

そして、「禁断の情報。会社の私信
。」または「Forrb1dden1nformation.Privatecorresp0ndenceofthec0mpany.」(はい、空白なし)

この問題を解決するには?
テキストはリアルタイムで処理されるため、高速なアルゴリズムが望ましいです。
また、パフォーマンスを向上させるためのヒント (保管方法など) はありますか?

4

2 に答える 2

3

私がアルゴリズムを知っている限り、2つの可能な解決策があります。

動的計画法、LCS (最長共通部分列) を使用してみることができます。元のテキストから目的の単語をパターンとして検索します。O(mn) だと思います。

http://en.wikipedia.org/wiki/Longest_common_subsequence_problem http://www.ics.uci.edu/~eppstein/161/960229.html

テキスト検索アルゴリズムを使用する方が簡単ですが。私がよく知っているのはKMPで、それは O(n) です。文字比較のために、それらを {i I l(L) 1}、{o O 0} などのセットにグループ化できます。ただし、すべての文字に一致しないようにこれを変更できます (禁止 -> 禁止)。

http://en.wikipedia.org/wiki/Knuth-Morris-Pratt_algorithm

これで、これら 2 つの利点とあなたの提案を比較できます。

于 2011-04-05T09:37:12.840 に答える
1

RegEx Matches を使用して単語をチェックすることもできます。 http://www.c-sharpcorner.com/uploadfile/prasad_1/regexppsd12062005021717am/regexppsd.aspx

于 2011-04-05T09:54:33.387 に答える