machine-learning
自然言語処理
サーチ…
前書き
NLPは、コンピュータがヒューマン・ランゲージからの意味を分析し、理解し、派生させる方法です。開発者は、NLPを利用して、自動要約、翻訳、名前付きエンティティ認識、関係抽出、感情分析、音声認識、トピックセグメンテーションなどのタスクを実行するための知識を整理し、構造化することができます。
テキストマッチングまたは類似性
NLPの重要な分野の1つは、類似点を見つけるためのテキストオブジェクトのマッチングです。テキストマッチングの重要なアプリケーションには、自動スペル補正、データ重複排除、ゲノム解析などがあります。要件に応じて、さまざまなテキストマッチング手法が利用できます。だから持っていきましょう。 レーベンシュタイン距離
2つの文字列間のLevenshteinの距離は、1つの文字列を他の文字列に変換するために必要な編集の最小数として定義され、許容される編集操作は1文字の挿入、削除、または置換です。
以下は効率的なメモリ計算の実装です。
def levenshtein(s1,s2):
if len(s1) > len(s2):
s1,s2 = s2,s1
distances = range(len(s1) + 1)
for index2,char2 in enumerate(s2):
newDistances = [index2+1]
for index1,char1 in enumerate(s1):
if char1 == char2:
newDistances.append(distances[index1])
else:
newDistances.append(1 + min((distances[index1], distances[index1+1], newDistances[-1])))
distances = newDistances
return distances[-1]
print(levenshtein("analyze","analyse"))
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow