尝试循环 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 的内容,其中有一节专门针对此问题。