DFA
決定性有限オートマトンであるDFA決定性有限オートマトン、それ。テキストフィルタアルゴリズムでは、DFAは、より良いアルゴリズムです。
その原理は、正確には何ですか?
日本人、日本の悪魔、毛沢東:いくつかの敏感な言葉があります。
まず:クエリの日---> {この}、クエリこの---> {男、悪魔}、クエリ人々---> {ヌル}、クエリゴースト---> {}のサブ。次のような構造を形成します。
ここでは、このチャートを拡張します。
このように、私たちは敏感シソーラスを構築します私たちは言葉を大幅に一致する範囲検索を減らす敏感な単語であるかどうかを判断するときように、木になりました。たとえば、私たちは日本人を判断したい、我々は、検索された最初の言葉によると木で、その後、このツリーで検索していることを確認することができます。
実現
例えば敏感な単語にHashSetの、モデルを構築するためにDFAアルゴリズム:
{で=
isEnd = 0
国<BR> {=
isEnd = 1
人= {isEnd = 0
中国1} = {isEnd =
}
M {=
isEnd = 0
人{=
isEnd = 1
}
}
}
}
5 {=
isEnd = 0
星{=
isEnd 0 =
赤{=
isEnd = 0
{フラグ=
isEnd = 1
}
}
}
}
isEndは、単語は単語の最後の単語であるか否かを判断します。敏感な単語の終わりを表す場合、isEnd = 1フラグを設定し、それ以外の場合フラグisEnd = 0を設定します。
私たちは、その後、例を実装、必要があります。
- シールドは、単一の単語ことができます。例えば、敏感な言葉は「ナイス」、元は「Uはナイスガイです」、出力が「UはXXXXの男です」。
- 複数の単語をシールドします。例えば、敏感な単語「素敵」、「日」、説明、「明るいXXXでこのようなXXXXの日」出力「このような素敵な一日明るい太陽と」
- 例えば、接頭語としての単語を置き換えることができます敏感な単語を含む、オリジナルの「Uはとてもフレンドリーで」、出力「UはXXXXXXXXようです」
- これは、単語の接尾辞などの機密言葉に置き換えることができます。上記。
- 敏感な単語を指定することができます指定された単語に置き換えられます。例えば、オリジナルの「異議が悪い、行うには良い事は」、出力が「異議は、行うにはgooderの事ungoodです」
ソースhttps://github.com/Ivyvivid/algorithm
ここだけの単純な実装され、パフォーマンスをさらに最適化することができます。バック文字列を組み立てる際の回避策は、句読点が消え、句読点分割に応じて、期待していなかったがあります。ホープ誰かが解決することができます。