私は、1つ以上のオランダの都市名を含む文字列(文)のリストを持っています。私はまた、オランダの都市のリストとその様々なスペルを持っています。私は現在Pythonで作業していますが、別の言語のソリューションも使えます。文字列の都市名を見つける
文章に記載されている都市のリストを取得するには、どのような方法が最も効率的でしょうか。私は、現時点では何
は、文のリストをループし、そのループ内で、都市のリストをループし place_name in sentence.lower()
かの1つのチェックずつ、私は持っている:
for sentence in sentences:
for place_name in place_names:
if place_name in sentence.lower():
places[place_name] = places[place_name] + 1
はこれですこれを行う最も効率的な方法は?私はまた、 "Ee"のような都市がオランダに存在し、その中に "ee"という言葉がかなり共通しているという問題にぶつかります。今のところ私はif place_name + ' ' in sentence.lower()
をチェックするだけで解決しましたが、スペースで終わらないので "Huis in Amsterdam"のような文も無視するので、これは最適で醜いのですが、うまくいきません句読点付き。私は正規表現を使ってみましたが、これはもちろん遅すぎます。この特定の問題を解決するより良い方法があるのだろうか、あるいはこの問題を一般的に解決するか?私はNLPの解決策に若干傾いていますが、それは大規模な過度の過ちでもあると感じています。