Using n-gram package in R to analyze Chinese text

中英文文本分析时,除了通常的分词后的词频分析,还有一类比较特殊的词频分析,即 n-gram 词频分析,它主要将语料中具有 共现(co-occurence)特征词语对 提取出来,分析这些共现词语出现频次及呈现的规律,由于这些共现词语比单一词语表达的语义更丰富,可以视作是传统单一词频分析的有益补充,当然传统的单一词频分析也可看作 n-gram 词频分析的特例。

在R语言中,ngram 包可以用来做 n-gram 词频分析,使用示例代码如下:

# 先安装 ngram 包
install.packages("ngram")
# 加载 ngram 包
library(ngram)
# 将分词后的文本以粘贴的方式赋值给变量(可以用其他方法读入分词后的文本)
text<-readClipboard()
# 设置 ngram 参数,如果是2,代表输出2个共现词,如果是3,代表输出3个共现词,以此类推,同时设置词语之间空格符相连
ngramstring<-ngram(text,n=2, sep=" ")
# 输出前n个共现词对频次及出现概率表
head(get.phrasetable(ngramstring),20)
# 输出分词后语料中的词语个数
wordcount(ngramstring,sep = " ",count.function = sum)

遗留问题

下列代码运行还有问题,留待以后再解决

rm(list=ls())
setwd("D:/website/word2vec")
AIjob<- readr::read_file("AI-job.txt")

library(jiebaR)
wk <- worker() 
segment<-wk[AIjob]
segment<-segment[nchar(segment)>1]# 去除单字符

ngramstring<-ngram(segment,n=2, sep=" ")
head(get.phrasetable(ngramstring),20)
Avatar
Wu, Jun
Associate professor
Next
Previous