gpt4 book ai didi

python - 如何在 NLP 中的 TweetTokenizer 步骤中删除标点符号和数字?

转载 作者:行者123 更新时间:2023-12-05 08:40:09 26 4
gpt4 key购买 nike

我是 NLP 的新手,所以请多关照。我有一份完整的特朗普上任后推文文本列表,我正在标记文本以分析内容。

我正在使用 python 中 nltk 库中的 TweetTokenizer,我正在尝试对除数字和标点符号之外的所有内容进行标记化。问题是我的代码删除了除一个之外的所有标记。

我尝试过使用 .isalpha() 方法,但这没有用,我认为这应该只对由字母组成的字符串为真。

#Create a content from the tweets
text= non_re['text']
#Make all text in lowercase
low_txt= [l.lower() for l in text]

#Iteratively tokenize the tweets
TokTweet= TweetTokenizer()
tokens= [TokTweet.tokenize(t) for t in low_txt
if t.isalpha()]

我的输出只是一个标记。如果我删除 if t.isalpha() 语句,那么我会得到所有标记,包括数字和标点符号,这表明 isalpha() 是过度修剪的罪魁祸首.

我想要的是一种从没有标点符号和数字的推文文本中获取标记的方法。感谢您的帮助!

最佳答案

尝试如下操作:

import string
import re
import nltk
from nltk.tokenize import TweetTokenizer

tweet = "first think another Disney movie, might good, it's kids movie. watch it, can't help enjoy it. ages love movie. first saw movie 10 8 years later still love it! Danny Glover superb could play"

def clean_text(text):
# remove numbers
text_nonum = re.sub(r'\d+', '', text)
# remove punctuations and convert characters to lower case
text_nopunct = "".join([char.lower() for char in text_nonum if char not in string.punctuation])
# substitute multiple whitespace with single whitespace
# Also, removes leading and trailing whitespaces
text_no_doublespace = re.sub('\s+', ' ', text_nopunct).strip()
return text_no_doublespace

cleaned_tweet = clean_text(tweet)
tt = TweetTokenizer()
print(tt.tokenize(cleaned_tweet))

输出:

['first', 'think', 'another', 'disney', 'movie', 'might', 'good', 'its', 'kids', 'movie', 'watch', 'it', 'cant', 'help', 'enjoy', 'it', 'ages', 'love', 'movie', 'first', 'saw', 'movie', 'years', 'later', 'still', 'love', 'it', 'danny', 'glover', 'superb', 'could', 'play']

关于python - 如何在 NLP 中的 TweetTokenizer 步骤中删除标点符号和数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57030670/

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