gpt4 book ai didi

python - 在 Python 上提取完整的字符串

转载 作者:太空狗 更新时间:2023-10-30 02:54:37 24 4
gpt4 key购买 nike

我需要对葡萄牙语字符串进行词干提取。为此,我使用 nltk.word_tokenize() 函数对字符串进行标记,然后分别对每个单词进行词干化。之后,我重建字符串。它在工作,但表现不佳。我怎样才能让它更快?字符串长度约200万字。

    tokenAux=""
tokens = nltk.word_tokenize(portugueseString)
for token in tokens:
tokenAux = token
tokenAux = stemmer.stem(token)
textAux = textAux + " "+ tokenAux
print(textAux)

抱歉英语不好,谢谢!

最佳答案

string 是不可变的,因此,如果字符串很长,则每次更新字符串都不是好的做法。 link here解释了连接字符串的各种方法并显示了性能分析。由于迭代只进行一次,因此最好选择 generator expression 而不是 list comprehension。详情可以查看discussion here .相反,在这种情况下,使用 generator expressionjoin 可能会有所帮助:

对长字符串使用 my_text:len(my_text) -> 444399

使用timeit比较:

%%timeit
tokenAux=""
textAux=""
tokens = nltk.word_tokenize(my_text)
for token in tokens:
tokenAux = token
tokenAux = stemmer.stem(token)
textAux = textAux + " "+ tokenAux

结果:

1 loop, best of 3: 6.23 s per loop

生成器表达式join结合使用:

%%timeit 
' '.join(stemmer.stem(token) for token in nltk.word_tokenize(my_text))

结果:

1 loop, best of 3: 2.93 s per loop

关于python - 在 Python 上提取完整的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45179185/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com