我想從10,000篇文章中提取含有藥物和基因名稱的句子。 和我的代碼是我想從10,000篇文章中提取含有藥物和基因名稱的句子
import re
import glob
import fnmatch
import nltk
from nltk.tokenize import sent_tokenize, word_tokenize
flist= glob.glob ("C:/Users/Emma Belladona/Desktop/drug working/*.txt")
print (flist)
for txt in flist:
#print (txt)
fr = open (txt, "r")
tmp = fr.read().strip()
a = (sent_tokenize(tmp))
b = (word_tokenize(tmp))
for c, value in enumerate(a, 1):
if value.find("SLC22A1") != -1 and value.find("Metformin"):
print ("Result", value)
re.findall("\w+\s?[gene]+", a)
else:
if value.find("Metformin") != -1 and value.find("SLC22A1"):
print ("Results", value)
if value.find("SLC29B2") != -1 and value.find("Metformin"):
print ("Result", value)
我想提取具有從文章的整個身體基因和藥名的句子。例如「二甲雙胍降低對數轉換的SLC22A1排泄(從1.5860.47降至1.0060.52,p = 0.001)」。 「最後,我們無法證實SLC22A1,ACE,AGTR1和ADD1的研究多態性與這項控制良好的研究中二甲雙胍的抗糖尿病反應的顯着相關性。」
該代碼返回很多句子,即如果上面的一個單詞出現在打印出的句子中......! 幫我做的代碼,這
請描述確切說明發生了什麼問題。會發生什麼,以及會發生什麼? – lenz
使用「print(tmp)」語句,可以打印您讀入的所有內容 - 無論您進行何種搜索。如果你的問題是你的輸出中有更多Result Result行,那麼請澄清你的問題。 – alexis
'if value.find(「SLC22A1」)!= -1和value.find(「Metformin」)'你想在這裏做什麼?檢查「SLC22A1」和「二甲雙胍」是否在值中?因爲如果是這樣,那就錯了。 –