【发布时间】:2018-07-30 05:44:23
【问题描述】:
我有一个包含单词及其lemma 的文本文件 - 每行在第一列中包含单词形式,在第二列中包含单词引理。
我有一个推文(句子)列表,我需要将其转换为词引理 - 每个词都需要转换为其引理(文本文件中的第二列)
我尝试为每个单词打开和关闭文本文件,但这花费的时间太长(每个单词大约需要 15 秒才能在文本文件中找到它们的引理)。函数如下。
def returnLemma(str):
str= word_tokenize(str)
end_str = ""
for word in str:
infile = open('MorphDict.txt', 'r')
for line in infile:
line.strip()
prva=line.split()[0]
druga=line.split()[1]
if word==prva:
end_str = end_str+" "+druga
break;
infile.close()
return end_str
是否可以更有效地搜索此文本文件 (>100MB)?是否可以使用pandas package 来解决这个问题?
【问题讨论】:
-
您的两个问题的答案基本上都是肯定的。但是,您可能会考虑重构此代码,以便在函数外部读取来自
MorphDict.txt的数据(一次)并作为参数传递。旁注:您当前使用str作为名称,这与 Python 内置冲突 -
你能发布一个小的可重复输入数据集和你想要的数据集吗? PS你问的是什么语言?是英文的吗?
-
为什么要在这里使用 Pandas?
-
@Javier 你为什么不呢?您可以在单个命令中连接字符串
-
@roganjosh 好吧,乍一看,这似乎是一个非常简单的函数。添加 Pandas 会使它变得更加复杂。我可能错过了你的意思。可以使用列表来保存要连接的字符串,从而比在帖子中更有效地连接。如果您使用 Pandas 发布此代码,也许它会澄清我的误解。
标签: python pandas search lemmatization