尝试循环 MeCab 来分析数据框中的文本描述
Trying to for loop MeCab to analyze text descriptions in dataframe
(更新)正如我在评论中指出的那样,我以某种方式成功地 运行 代码,但它仍然花费了 30 分钟这样的时间。如果你们能帮我找出更有效的代码编写方法,我将不胜感激。
我正在尝试 运行 代码来分析数据框中的描述列,但每次 运行 我都会收到 运行t 超时错误。可能是因为数据框有超过 200,000 行,下面的代码效率不高。有人可以帮助我了解代码有什么问题吗?
list = df["description"].tolist()
new_list = []
for li in list:
tagger = MeCab.Tagger(ipadic.MECAB_ARGS)
node = tagger.parseToNode(li)
keywords = []
while node:
if node.feature.split(",")[2] == "組織": #組織 means organization
keywords.append(node.surface)
node = node.next
new_list.append(keywords)
df["description"] = new_list
在循环外创建标记器。
tagger = MeCab.Tagger(ipadic.MECAB_ARGS)
for li in list:
...
Tagger 有启动成本。这是一个很小的成本,但该对象被设计为可重复使用,不应在这样的循环中重新创建。
请参阅 this post Python 中关于使用 MeCab 的内容,其中有一节专门针对此问题。
(更新)正如我在评论中指出的那样,我以某种方式成功地 运行 代码,但它仍然花费了 30 分钟这样的时间。如果你们能帮我找出更有效的代码编写方法,我将不胜感激。
我正在尝试 运行 代码来分析数据框中的描述列,但每次 运行 我都会收到 运行t 超时错误。可能是因为数据框有超过 200,000 行,下面的代码效率不高。有人可以帮助我了解代码有什么问题吗?
list = df["description"].tolist()
new_list = []
for li in list:
tagger = MeCab.Tagger(ipadic.MECAB_ARGS)
node = tagger.parseToNode(li)
keywords = []
while node:
if node.feature.split(",")[2] == "組織": #組織 means organization
keywords.append(node.surface)
node = node.next
new_list.append(keywords)
df["description"] = new_list
在循环外创建标记器。
tagger = MeCab.Tagger(ipadic.MECAB_ARGS)
for li in list:
...
Tagger 有启动成本。这是一个很小的成本,但该对象被设计为可重复使用,不应在这样的循环中重新创建。
请参阅 this post Python 中关于使用 MeCab 的内容,其中有一节专门针对此问题。