研究の主題はText processing and detection from a specific dictionary in pythonトピックから取られました。多分私はOPの問題を誤解しましたが、コードを改善しようとしました。だから、おそらく私の質問は少し違うかもしれません。私がやりたいことを説明する前に、私はあなたとコードを共有してみましょう:プレーンテキストから辞書キーを取得するにはどうすればよいですか?
dict_1={"Liquid Biopsy":"Blood for analysis","cfDNA":"Blood for analysis"}
list_1=[u'Liquid', u'biopsy',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.']
for i in dict_1:
if i.lower() in " ".join(list_1).lower():
print("Key: {}\nValue: {}\n".format(i,dict_1[i]))
これらのコードはlist_1
に書かれたプレーンテキストから辞書のキーをキャッチすることができます。しかし、私はこのコードで勉強していたときに、何らかの辞書キーがlist_1
で繰り返すかどうか疑問に思いました。それから、私はこのlist_1
で同じ鍵を2回書いた。そして、上記のコードは繰り返しのものを認識しませんでしたが、プログラムは以下のように同じ結果を出しました。
Key: cfDNA
Value: Blood for analysis
Key: Liquid Biopsy
Value: Blood for analysis
Process finished with exit code 0
はその後、私は私の方法を変更しようと以下の通りである別のコードを書いた:
dict_1={"Liquid Biopsy":"Blood for analysis","cfDNA":"Blood for analysis"}
list_1=[u'Liquid', u'biopsy',u'based', u'on', u'circulating', u'cell-free', "cfdna",u'DNA', u'(cfDNA)', u'analysis', u'are', u'described', u'as', u'surrogate', u'samples', u'for', u'molecular', u'analysis.']
for i in list_1:
for j in dict_1:
for k in j.split():
count=0
if k.lower() in i.lower():
count+=1
print("Key: {}\nValue: {}\nCount: {}\nDescription: Came from '{}'\n".format(j, dict_1[j],str(count),i))
をしかし、それは明らかだった、最後のコードは、望ましくない結果を与えるだろう。以下に見られるように、プログラムはのliquid
とbiopsy
の単語をキャッチします。 cfDNA
はlist_1
で2回書かれたので、プログラムは2回キャッチします。しかし、結果を1回書くことは可能ですが、キャッチ時間を合計しますか?
Key: Liquid Biopsy
Value: Blood for analysis
Count: 1
Description: Came from 'Liquid'
Key: Liquid Biopsy
Value: Blood for analysis
Count: 1
Description: Came from 'biopsy'
Key: cfDNA
Value: Blood for analysis
Count: 1
Description: Came from 'cfdna'
Key: cfDNA
Value: Blood for analysis
Count: 1
Description: Came from '(cfDNA)'
Process finished with exit code 0
私がしたいことを理解していただければ幸いです。私はテキストで書かれたすべてのキーをキャッチしたい。また、何度も何度もカウントしたいのですが、これらのキーはテキストで繰り返されます。
あなたはあなたの意見を共有できますか?それがファイルかリストか他であれば? –
これはlist_1というコードで定義されたリストです。 –