我想使用索引查找文本中单词或短语的实例,然后在字典中查找找到的单词/短语并返回相应的值。这是我到目前为止的代码。
from __future__ import division
import nltk, re, pprint
OutFileName = "shark_uri.txt"
OutFile = open(OutFileName, 'w')
book1 = open('shark_test.txt', 'rU').read()
token1 = nltk.word_tokenize(book1)
text1 = nltk.Text(token1)
LineNumber = 0
for k, v in bio_dict.iteritems():
text1.concordance(k)
#if k is found then print v, else go on to next k
if k #is found:
OutFile.write(v)
OutFile.write('\n')
LineNumber += 1
else
LineNumber += 1
OutFile.close()
这段代码应该是在 Shark_test.txt 文件中读取关于鲨鱼的一段。bio_dict 包含这样的键值对
'ovoviviparous':'http://dbpedia.org/resource/Ovoviviparity',
'predator':'http://dbpedia.org/resource/Predation',
键代表程序正在查找的单词或短语。该值是对应于单词/短语的 DBpedia URI。这个想法是,当在文本中找到像“predator”这样的词时,程序将返回 Predation 的 DBpedia URI。我得到了很多奇怪的结果,我认为这是因为我需要告诉程序如果找到 k 则返回 v,否则转到下一个 k。我在上面的代码块中为此放置了一个占位符。我不太清楚如何用 Python 来表达这个。如果 k == True 会是这样吗?如果没有这个条件,它似乎只是通过字典打印所有值,而不管是否找到键。有什么建议吗?提前致谢。