【问题标题】:Stemming texts separates words into letters词干文本将单词分成字母
【发布时间】:2023-02-25 07:08:35
【问题描述】:

我正在尝试使用标记化、词干提取、规范化和停用词/标点符号删除等来处理我的文本。 当我使用滚雪球阻塞技术, 我的文本被分隔成字母,中间用逗号分隔。

def processed_tweets(text):

  punctuate_text= str.maketrans('', '', string.punctuation+string.digits)
  text = text.translate(punctuate_text)

  tokens = word_tokenize(text)

  stop_words = set(stopwords.words('english'))
  filtered_words = [w for w in tokens if not w in stop_words]

  #applying stemming 
  snow_stemmer = SnowballStemmer(language='english')
  text = [snow_stemmer.stem(word) for word in text]

  return text


tweet_df['processed_tweets'] = tweet_df['Tweet Body'].apply(processed_tweets)
tweet_df.head()

这是我得到的输出:

但是,使用词形还原时情况并非如此。关于我如何编写代码或我使用的技术(词干提取与词形还原)是否存在问题?

【问题讨论】:

  • 你不应该使用for word in text.split(' ')吗? Python 假定您要遍历字符串的字符。

标签: python sentiment-analysis stemming lemmatization


【解决方案1】:

好吧,我不是很喜欢那种类型的处理文本,我真的不知道你在找什么...... 但据我了解,您正在使用模块“maketrans”删除所有标点符号和数字(我会使用其他方法,但它可以完成工作而且速度很快)。

但我不明白你为什么标记化,当你从字面上删除所有标点符号和数字时......从字面上看标记化是拆分文本和得到所有的标点符号、数字、符号……你真的只是删除了。 也许尝试更换:

tokens = word_tokenize(文本)

和:

list_words = text.split()

函数 split 切割空格并将其删除,并将所有文本附加到列表中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    • 2017-07-10
    • 1970-01-01
    • 2018-03-02
    相关资源
    最近更新 更多