Python - NLTK 分隔标点符号

标签 python nltk

我是 Python 的新手,我正在尝试使用 NLTK 删除我文件的停用词。 该代码正在运行,但是它是分隔标点符号,如果我的文本是一 strip 有提及 (@user) 的推文,我会得到“@user”。 稍后我需要做一个词频,我需要提及和主题标签才能正常工作。 我的代码:

from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
import codecs
arquivo = open('newfile.txt', encoding="utf8")
linha = arquivo.readline()
while linha:
    stop_word = set(stopwords.words("portuguese"))
    word_tokens = word_tokenize(linha)
    filtered_sentence = [w for w in word_tokens if not w in stop_word]
    filtered_sentence = []
    for w in word_tokens:
       if w not in stop_word:
           filtered_sentence.append(w)
    fp = codecs.open("stopwords.txt", "a", "utf-8")
    for words in (filtered_sentence):
        fp.write(words + " ")
    fp.write("\n")
    linha= arquivo.readline()

编辑 不确定这是否是最好的方法,但我是这样修复的:

for words in (filtered_sentence):
        fp.write(words)
        if words not in string.punctuation:
            fp.write(" ")
    fp.write("\n")

最佳答案

您可以使用 Twitter-aware tokenizer 而不是 word_tokenize由 nltk 提供:

from nltk.tokenize import TweetTokenizer

...
tknzr = TweetTokenizer()
...
word_tokens = tknzr.tokenize(linha)

关于Python - NLTK 分隔标点符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39402983/

相关文章:

python - 如何使用未标记的数据集进行序列标记

python-3.x - 如何将 text.concordance 附加到变量列表?

python - 在 pandas 中执行 nltk.stem.SnowballStemmer

python - HTTP 错误 403 : Forbidden when using NLTK

python用语言环境设置自己的货币

python - 如何将 GET 请求从我的 flask 应用程序发送到另一个站点?

python - 解析 askopenfilenames() 的结果?

python - bulk_insert 不会将值插入可为空的字段

python - 将一个或多个吸引子添加到一组随机二维点

python - 要下载什么才能使 nltk.tokenize.word_tokenize 工作?