【问题标题】:How can junk data be removed from text analytics如何从文本分析中删除垃圾数据
【发布时间】:2016-09-15 23:23:32
【问题描述】:

我对 R 非常陌生,最近开始从事一个文本分析项目。我正在尝试将构成我的故事的单词组成一个词云。 我安装的包是:

tm
SnowballC
wordcloud

数据是反馈数据,包含大量不属于英语的票证生成垃圾词。 有什么方法可以删除垃圾词并只使用正确的英语吗? 我已经尝试制作一个要删除的单词列表,但是列表中要添加的单词太多。

请帮忙... 谢谢

【问题讨论】:

  • tm 这样做。如果您添加一个可重现的示例,它会更容易帮助您
  • 删除非英语单词非常简单。下载任何海量字典(如 brown 或 reuters)并将它们转换为数据框并执行 !( df1$word %in% dictionary$word) subset...提供可重现的示例将帮助我们为您的数据提供准确的代码...
  • 嗨 Gaurav,我的 wordcloud 按降序显示频率为:jqxwb、gghtf、neelam、jhwqex、lkjbne、taslima、刺绣、同意、数据时间......与我唯一相关的词是 - 刺绣并同意。想消除其余的......希望这个例子有助于更好地理解这个问题!

标签: r tm text-analysis word-cloud


【解决方案1】:

要删除停用词试试这个:

df %>%
  unnest_tokens(word_column, text_column) %>%
  anti_join(stop_words, by = "word_column")

我不知道您是否已经将文本分成单个单词,因此存在函数 unnest tokens(输出列名,输入列名(带有 setences 的列))。

反连接函数会移除停用词

【讨论】:

    【解决方案2】:

    要删除非英语单词,请将您的数据与 tidytext 包中的数据框“parts_of_speech”进行内部连接,然后使用同一 tidytext 包中的数据框删除停用词。

    library(dplyr)    #  loads inner_join, anti_join
    # load unnest_tokens(); parts_of_speech stop_words data frames:
    library(tidytext) 
    data(package="tidytext") # show built-in  data frames
    
    # optional, show richness of parts_of_speech dataset
    all_english_words <-  parts_of_speech$word # , > 200000 rows
    grep("apple", all_english_words, value=TRUE)
    
    # assume data-frame df containing your data was already created,
    # contains column `text_column`, all lowercase
    new_df <- df %>%
      unnest_tokens(word, text_column) %>%
      inner_join(word, parts_of_speech, by = "word") %>%
      anti_join(stop_words, by = "word")
    
    glimpse(new_df)
    

    可能需要进行一些微调。

    【讨论】:

      猜你喜欢
      • 2013-01-02
      • 2014-09-12
      • 2013-05-18
      • 2019-08-03
      • 2013-02-24
      • 1970-01-01
      • 2023-03-23
      • 2018-03-15
      • 1970-01-01
      相关资源
      最近更新 更多