我想从医学数据中提取疾病词来制作疾病词典(考虑医生写的笔记,测试结果)。我正在使用python。我尝试了以下方法:
根据搜索结果,使用google API检查单词是否为疾病。它不顺利,因为它也提取医学词,我甚至尝试修改搜索,我也不得不购买谷歌CSE,我认为这是昂贵的,因为我有大量的数据。它包含在帖子中的巨大代码。
使用weka来预测单词,但我拥有的数据是普通文本数据,不会遵循任何规则而不是ARFF或CSV类型。
尝试检查NER以提取疾病词。但是,我所见过的所有模型都需要一个预定义的字典来搜索并对输入数据执行tf-idf。我没有这种字典。
在我见过的所有模型中,他们建议我为我所做的数据标记化POS,而找不到另一种方法来提取疾病词。
我甚至尝试只提取那些表现不佳的名词,因为其他医学术语也被视为名词。
我的数据采用以下方式,并且在整个文档中没有采用相同的方式:
在进行临床评估后,患者患有此病 糖尿病,htn,这是一个完整的血液图片透露 病人的血已经完成了。建议他服用PRINIVIL TABS 20 MG (LISINOPRIL)1。
相信我,我搜索了很多内容,无法找到完美的解决方案。请建议我继续前进的方式。
以下是我尝试提取医学术语的方法之一。对不起,代码看起来有点笨拙,我在其中定位主要功能,因为发布整个代码将是非常长的。看看search_word变量的主要逻辑就在那里:
def search(self,wordd): #implemented google custom search engine api
#responseData = 'None'
global flag
global page
search_word="\"is+%s+an+organ?\"" %(wordd)
search_word=str(search_word)
if flag == 1:
search_word="\"%s+is+a+disease\"" %(wordd)
try: #searching google for the word
url = 'https://www.googleapis.com/customsearch/v1?key=AIzaSyAUGKCa2oHSYeZynSMD6zElBKUrg596G_k&cx=00262342415310682663:xy7prswaherw&num=3&q='+search_word
print url
data = urllib2.urlopen(url)
response_data = json.load(data)
results=response_data['queries']['request'][0]['totalResults']
results_count=int(results)
print "the results is: ",results_count
if(results_count == 0):
print "no results found"
flag = 0
return 0
else:
return 1
#except IOError:
#print "network issues!"
except ValueError:
print "Problem while decoding JSON data!"