按词性提取单词

一直关注这样一个问题,一段英文文字中用到了哪些词,尤其是动名形容词?这样可以有目的地提高词汇量从而有助于英文写作。

几乎每届R语言会议上都有关于文本处理的分会场,文本处理在如今的社会中有非常重要的应用。但是对于自己而言并不需要这些繁杂的用处,而且英文的处理相对于中文要简单不少,在R中也有相应的包可以实现这些。一开始借助OpenNLP,但有几个缺点:

  • 2个包要用到rjava,安装时非常之繁琐且容易失败,解决方法。

  • 分词很慢。

  • 同一个单词不同词形比如复数、时态不能归一,造成冗余。

后来为了解决词形的问题时遇到一页博客提及对应的英文单词是lemmatization,通过google后找到koRpus利用TreeTagger能够实现。注意Windows下要下载English parameter file并解压到lib文件夹中,以及安装Perl。运行时可能会报错,koRpus的解决方法见这里。
分词(或句子)用quanteda::tokenize实现。

提取的结果并不完美,例如会出现数字开头的错误单词,不要苛责。

你可能感兴趣的:(按词性提取单词)