作者:黄天元,复旦大学博士在读,目前研究涉及文本挖掘、社交网络分析和机器学习等。希望与大家分享学习经验,推广并加深R语言在业界的应用。
邮箱:huang.tian-yuan@qq.com
前文推送:
R语言自然语言处理:关键词提取与文本摘要(TextRank)
R语言自然语言处理:文本向量化——词嵌入(Word Embedding)
不知不觉已经写了这么多,但是很多R语言自然语言处理的方法并没有展开来讲。这次希望尝试用简单的技术(TF-IDF和相似度矩阵)做一次实践,即文档分类。
任务定义:对于任意给定的一个字符串,判断它与目前哪个文档最为相似,从而进行归类。首先要对当前的文档(数据见github.com/hope-data-sc)做词嵌入(就用最简单的TF-IDF模型),然后对于任意的新字符串,进行向量化之后,与先前的标准库做相似性的分析,看看与哪个文档相似性最近,就属于哪一个类别。
1 读入文件
1library(pacman)
2p_load(tidyverse,data.table)
3
4fread("classification_corpus_raw.csv",encoding = "UTF-8") %>%
5 as_tibble() %>%
6 mutate(id = 1:n())-> raw
这样,文件就在raw中了。
2 计算TF-IDF
这一部分参考