在R中对日语文本进行标记化:仅对指定列的第一行进行标记化

时间:2018-07-31 07:51:26

标签: r dataframe tokenize tidytext mecab

我正在尝试使用日语令牌生成器RMeCab,特别是函数RMeCabDF(用于数据帧)对一组推文进行令牌化。

文档规定以下用法:

  

RMeCabDF

     

说明

     

RMeCabDF将数据帧作为第一个参数,并分析   第二个参数指定的列。空白数据应为   替换为NA。如果将1指定为第三个参数,则返回   每个词素都有其基本形式。

     

用法

     

RMeCabDF(dataf,coln,mypref,dic =“”,mecabrc =“”,等等=“”)

     

参数

     

dataf data.frame

     

coln 包含日语句子的列号或名称

     

mypref 默认值为0,返回出现在文本上的相同词素形式。如果指定1,则改为基本形式。

     

dic 指定用户字典,例如ishida.dic

     

mecabrc 未实现(用于指定mecab资源文件)

     

etc 其他用于mecab的选项

因此,在此之后,我使用以下代码标记数据帧89中的列号trump_ja

trump_ja_tokens <- RMeCabDF(trump_ja, coln = 89)

这将产生List of 1-但如您所见,该数据帧有989行。

enter image description here

我的其他行又去了哪里?

我必须逐行标记吗?如果是这样,有什么方法可以自动执行此过程,以避免键入1000行代码(或使用Excel生成1000行代码)?

1 个答案:

答案 0 :(得分:1)

您可以将RMeCab标记器与tidytext一起使用,就像this user那样。您将像这样设置它:

df %>%
    unnest_tokens(word, text, token = RMeCab::RMeCabC)

其中df是您的数据框,word是您要创建的新列,而text是您已经拥有的旧列,其中包含您想要的文本标记化。在这种情况下,token中的unnest_tokens()参数可以接受函数作为参数。