2017-05-15 26 views
0

我有一个英文文本,我想处理它以检测Python中另一个字典中的特定条目(示例条目:质谱)。这些条目非常重要,因为它们需要与以后的注释匹配。为了做到这一点,我需要为每个条目添加许多形式(如复数形式,首字母缩写词等),或者找到一种方法来进行智能处理。蛮力方法不仅需要更多的时间(对我来说),但我可能无法解决所有情况(我想要质谱,可能是光谱,但不是质量)。我不是在寻找解决方案,我只需要指导如何解决问题和使用哪个工具箱。字典越来越多,智能的方法将是首选。文本处理和python中的特定字典中的检测

我在Python中找到了NLTK,但我不知道如何使用我的dict,或者不使用内置的语料库。

示例 - 我有一句话: [u'Liquid',u'biopsies',u'based',u'on',u'circulating',u'cell-free',u'DNA' u'(cfDNA)',uanalysis',u'are',u'described',u'as',u'surrogate',u'samples',u'for',u'molecular',uanalysis ''] 我有一个字典{'Liquid biopsy':['Blood for analysis'],'cfDNA':['Blood for analysis']}。数组被有意使用,所以它们都是同一个对象,因此试图在字典中创建别名。

如何将我的条目与文本匹配?

在此先感谢!

+0

如果您向我们展示了您想象中的工作流程的代码示例,那将会更有帮助。 –

+0

欢迎来到StackOverflow。请阅读并遵守帮助文档中的发布准则。 [在主题](http://stackoverflow.com/help/on-topic)和[如何提问](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