初めての投稿はこちら私は、私がテキスト分析に関して達成しようとしていることについて少し助けを見つけることができればと願っています。テキストブロック内の[名前のリストからの任意の名前] + [特定の姓]をカウントするにはどうすればよいですか?
まず、私はこれをPythonでやっていますが、この機能は私が満足しているより大きな、そうでなければ健全なツールの一部になるので、Pythonにとどまりたいと思います。 NLKTとAnacondaもすべてセットアップされているので、これらのリソースを利用することも可能です。
私は、大きなテキストブロックの都市名への参照を追跡して追加するツールに取り組んできました。たとえば、「シカゴ」、「ニューヨーク」、「ロサンゼルス」、「サンフランシスコ」などがテキストチャンクで検出され、ランク付けされる回数を計測することができます。
私が抱えている現在の問題は、姓でもある都市名から誤検出を除去する方法を考え出すことです。例えば、Jackson Mississippiとは数えたいが、 "Frank Jackson" "Jane Jackson"などは数えたくない。
私は何をしたいのですか? [名字の長いリストからの任意の名前] + [姓の選択]である可能性があります。
センサスのデータから〜5000のファーストネームのリストを集めました。これをリストとしてPythonに取り込むこともできます。また、真/偽をチェックしてその名前がそのリストにあるかどうかを調べることができるので、私が近づいていることを知ることができます。
しかし、私が把握することはできませんすることは(私は再び例としてジャクソンを使用します)のようなものである、私が欲しいものを表現する方法である:
totalfirstnamejacksoncount = count (“[any name from census list] + Jackson”)
多かれ少なかれ。国勢調査のリストからワイルドカードとして使うことができますか? "anynamevariable + Jackson"に行くことができるように、 "このリスト内の項目"として読み込む変数を設定します。あるいは、「国勢調査リスト+ジャクソン」のような言葉を表す他の方法はありますか?
理想的には、「[任意のファーストネーム] + [指定された姓]」の合計数を得ることが理想です。a)[都市名でもある姓]おそらく他のいくつかの細分化のためにそのカウントを使用します。
センサスのリストを直接変更して、ジャクソン(または私が必要とする姓)を各名前に追加して行を手作業で追加する方法を見ることができますが、私がしたいと思っているそれぞれの名前の〜5000の名前を見ると、私のコードの完全な混乱。
長すぎる投稿を申し訳ありません。私はこのすべてをあなたの助けに感謝します。もしあなたが他の提案をしていると思うなら、私はそれにアプローチするより良い方法かもしれないと思います。
NLTKは最初に収集したリストよりも完成度の高い、〜8,000の英語名のリストを持つコーパスnltk.corpus.namesを特徴としています。 – DyZ
"Jackson"のすべてのインスタンスに先行する単語のリストを作成し、それをループしてnltk.corpus.namesに入っているかどうかを確認できますか? – Dwaxe
私はコンコーダンスを作成し、コーパスのリストから名前を調べることを考えましたが、NLTKのコンコーダンスを変数に出力するという問題があります。一致の長さは、名前を捕まえることができるようにするが、捕まえることはできません。私はちょうど私が行くことができれば(このリストのどれか+ "ジャクソン")最も簡単な方法かもしれないように私がこれのように見えると思った。また、NLTKの名前リストを指摘してくれてありがとう。それは、ファーストネームを組み立てるより良い方法かもしれません。 – newreadia