我正在尝试使用日语令牌生成器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行。
我的其他行又去了哪里?
我必须逐行标记吗?如果是这样,有什么方法可以自动执行此过程,以避免键入1000行代码(或使用Excel生成1000行代码)?
答案 0 :(得分:1)
您可以将RMeCab
标记器与tidytext一起使用,就像this user那样。您将像这样设置它:
df %>%
unnest_tokens(word, text, token = RMeCab::RMeCabC)
其中df
是您的数据框,word
是您要创建的新列,而text
是您已经拥有的旧列,其中包含您想要的文本标记化。在这种情况下,token
中的unnest_tokens()
参数可以接受函数作为参数。