python : How to optimize comparison between two large sets?

标签 python list optimization comparison nlp

我向你致敬!我是新来的,在尝试优化这部分代码时遇到了一些小问题。

我正在读取两个文件:

Corpus.txt -----> 包含我的文本(1.000.000 字)

Stop_words.txt -----> 包含我的停止列表(4000 个单词)

我必须将语料库中的每个词与停止列表中的每个词进行比较,因为我想要一个没有停止词的文本,所以我: 使用以下代码进行 1.000.000*4000 次比较:

fich= open("Corpus.txt", "r")
text = fich.readlines()

fich1= open("stop_words.txt", "r")
stop = fich1.read()

tokens_stop = nltk.wordpunct_tokenize(stop)
tokens_stop=sorted(set(tokens_stop))

for line in text :
    tokens_rm = nltk.wordpunct_tokenize(line)
    z = [val for val in tokens_rm if val not in tokens_stop]
    for i in z:
        print i

我的问题是:有什么不同的做法吗?有什么结构可以优化吗?

最佳答案

您可以创建一组停用词,然后针对文本中的每个词查看它是否在该组中。

实际上看起来你已经在使用一套了。虽然我不知道你为什么要排序它。

关于 python : How to optimize comparison between two large sets?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30249815/

相关文章:

javascript - 如何组织css和js文件的缩小和打包以加快网站速度?

c - ARMCC 删除未使用的变量

.net - 制作基于网络的 2 人文本游戏

python - 在 python 中使用 multiprocessing.Manager 在进程之间共享数据

java - 如何实现插入排序?

c# - 循环列表并将其元素与条件 c# 进行比较

python - 在 python 中循环遍历列表

python - 从列表列表中统一抽取5个元素

python django shell(ipython)意外行为或错误?

c++ - 在 C++ 中调用函数(或虚函数)是一个 coSTLy 操作