2017-05-15 11 views
0

Pythonで他の辞書にある特定のエントリを検出するために処理したいテキストが英語で表示されています(例:質量分析)。これらのエントリは、後の注釈のために照合する必要があるため、非常に重要です。そのためには、各エントリの複数の形式(複数形、頭字語など)を追加するか、インテリジェントな処理を行う方法を見つける必要があります。 bruteのアプローチは(私にとっては)はるかに時間がかかるだけでなく、すべての状況を解決することができないかもしれません(私は質量分析を望みます。私は解決策を探していない、私はちょうど問題にアプローチする方法とどのツールキットを使用する必要があります。辞書は成長しており、知的なアプローチが好まれるでしょう。Pythonの特定の辞書からのテキスト処理と検出

私はPythonでNLTKを見つけましたが、ビルトインコーパスに加えて、または代わりに私の辞書を使用する方法がわかりません。

例 - 文章があります: [u'Liquid '、u'biopsies'、u'based '、u'on'、u'circulating '、u'cell-free'、u'DNA '、 u'analysis '、u'are'、 'u'described'、u'as '、u'surrogate'、u'samples '、u'for'、u'molecular '、u'analysis ']] [液体生検]:['血液分析用] '、' cfDNA ':['血液分析用] '}を持っています。配列は目的に応じて使用されるため、両方とも同じオブジェクトであるため、dictにエイリアスを作成しようとしています。

どのようにして自分のエントリーをテキストに一致させることができますか?

ありがとうございます!

+0

あなたの想像したワークフローのコード例を見せていただければ、もっと役に立ちます。 –

+0

ようこそStackOverflowへ。ヘルプドキュメントの投稿ガイドラインを読み、それに従ってください。 [on topic](http://stackoverflow.com/help/on-topic)および[How to Ask](http://stackoverflow.com/help/how-to-ask)をここで適用してください。 StackOverflowは、デザイン、コーディング、リサーチ、またはチュートリアルサービスではありません。それは特定のプログラミング問題に集中しています。 – Prune

+0

申し訳ありませんが、非常に具体的な例を私のユースケースから追​​加しました。テキストと辞書の両方がはるかに大きいです。 –

答えて

1

あなたが誤解していない場合は、辞書項目をリスト項目で確認したいと考えています。次に、結果をコンソールに出力します。

dict_1={"Liquid Biopsy":"Blood for analysis","cfDNA":"Blood for analysis","Liquid Biopsies":"Blood for analysis"} 
list_1=[u'Liquid', u'biopsies', u'based', u'on', u'circulating', u'cell-free', u'DNA', u'(cfDNA)', u'analysis', u'are', u'described', u'as', u'surrogate', u'samples', u'for', u'molecular', u'analysis.'] 
string_1=" ".join(list_1).lower() 
for i in dict_1: 
    if i.lower() in string_1: 
     print("Key: {}\nValue: {}\n".format(i,dict_1[i])) 

私は上記のコードを使用し、コンソールは以下の結果を出力しました。

Key: Liquid Biopsies 
Value: Blood for analysis 

Key: cfDNA 
Value: Blood for analysis 


Process finished with exit code 0 
関連する問題