Python : 如何优化两个大集合之间的比较?
Python : How to optimize comparison between two large sets?
我向你致敬!我是新来的,在尝试优化这部分代码时遇到了一些问题。
我正在读取两个文件:
Corpus.txt -----> 包含我的文字(1.000.000 字)
Stop_words.txt -----> 包含我的stop_list(共 4000 字)
我必须将语料库中的每个词与 stop_list 中的每个词进行比较,因为我想要一个没有停用词的文本,所以我:
使用以下代码进行 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
我的问题是:有什么不同的做法吗?有什么结构可以优化吗?
您可以创建一组 stop_words,然后针对文本中的每个单词查看它是否在该组中。
实际上看起来你已经在使用一套了。虽然我不知道你为什么要对它进行排序。
我向你致敬!我是新来的,在尝试优化这部分代码时遇到了一些问题。
我正在读取两个文件:
Corpus.txt -----> 包含我的文字(1.000.000 字)
Stop_words.txt -----> 包含我的stop_list(共 4000 字)
我必须将语料库中的每个词与 stop_list 中的每个词进行比较,因为我想要一个没有停用词的文本,所以我: 使用以下代码进行 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
我的问题是:有什么不同的做法吗?有什么结构可以优化吗?
您可以创建一组 stop_words,然后针对文本中的每个单词查看它是否在该组中。
实际上看起来你已经在使用一套了。虽然我不知道你为什么要对它进行排序。