2017-08-10 9 views
0

私の問題は、私は「ジョーンズ davidrobert 」のように連結された名前を、との完全な名前を持ってい連結の名前を分割するアルゴリズム

です。 "david robert jones"に分割したいと思います。

私は最長のプレフィックスマッチングアルゴリズムを使って名前の辞書をテストしましたが、多くの方法で名前を書くことができるので簡単です。 音韻マッチングアルゴリズムも追加しましたが、同じ発音を持つことができる名前が多く、あいまいです。

私は機械学習には答えがあると信じていますが、機械学習についてはあまりよく分かりません。

+1

これはおそらく愚かな質問ですが、一般的にスプリットポイントに大文字があります。いずれにせよ、それが述べられているように、問題はあまりにも広く、あまりよく定義されていません。たとえば、「Jeanmarie」、「Jean-Marie」、および「Jean Marie」は、すべてもっともらしい名前です。 – jdehesa

+0

まあ、私はそれが挑戦的な質問を参照してください。私は質問をより明確にするために質問を編集しました。完全な名前はすべて小文字です。そして、名前がもっともらしい名前であれば、それがその人の正しい名前であるということではありません。 –

+1

あなたの質問は、あまりにも不明確です。あなたは、同じ名前の異なるスペルをキャプチャしたいとしますが、別のスペルで同じ名前の名前は望ましくありません。次に、「正しい名前」を推測したいと思いますが、「Jeanmarie」または「Jean Marie」が正解かどうかを判断する方法はありません。データ駆動型アプローチ(例えば、機械学習を使用する)は、もっともらしいもの(必ずしも正しいものではない)を得るのに役立つかもしれませんが、あなたはそれを望んでいないようです... – lenz

答えて

1

あなたの問題はNamed Entity Recognizerと似ていると思います。 名前付きエンティティ認識(NER)は、人物や会社名など、物の名前であるテキスト内の単語のシーケンスをラベル付けします。セクション5では、articleにはNamed Entity Recognitionのpythonメソッドがあります。

0

考えられるアルゴリズムの解決策の1つは、可能な限りfirst_name last_nameを表すより長い構成辞書を作成することです。トークンの任意のリストを名前(スペースで区切られた単語)として、各トークンに対して、そのトークンとの編集距離が最も短い辞書を検索します。

関連する問題