"结巴"中文分词的R语言版本,支持最大概率法(Maximum Probability),隐式马尔科夫模型(Hidden Markov Model),索引模型(QuerySegment),混合模型(MixSegment),共四种分词模式,同时有词性标注,关键词提取,文本Simhash相似度比较等功能。项目使用了Rcpp和CppJieba进行开发。
特性
支持 Windows , Linux操作系统(Mac 暂未测试)。
通过Rcpp Modules实现同时加载多个分词系统,可以分别使用不同的分词模式和词库。
支持多种分词模式、中文姓名识别、关键词提取、词性标注以及文本Simhash相似度比较等功能。
支持加载自定义用户词库,设置词频、词性。
同时支持简体中文、繁体中文分词。
支持自动判断编码模式。
比原"结巴"中文分词速度快,是其他R分词包的5-20倍。
安装简单,无需复杂设置。
可以通过Rpy2,jvmr等被其他语言调用。
基于MIT协议。
目前该包还没有发布到CRAN,可以通过Github进行安装。Windows系统需要安装 Rtools,或者可以下载二进制包,进行安装:
library(devtools) install_github("qinwf/jiebaR")
jiebaR提供了四种分词模式,可以通过jiebar()
来初始化分词引擎,使用segment()
进行分词。
library(jiebaR) ## 接受默认参数,建立分词引擎 mixseg = worker() ## 相当于: ## jiebar( type = "mix", dict = "inst/dict/jieba.dict.utf8", ## hmm = "inst/dict/hmm_model.utf8", ### HMM模型数据 ## user = "inst/dict/user.dict.utf8") ### 用户自定义词库 mixseg <= "江州市长江大桥参加了长江大桥的通车仪式" ### <= 分词运算符 ## 相当于 segment( "江州市长江大桥参加了长江大桥的通车仪式" , mixseg )
[1] "江州" "市长" "江大桥" "参加" "了" "长江大桥" [7] "的" "通车" "仪式"
支持对文件进行分词:
mixseg <= "./temp.dat" ### 自动判断输入文件编码模式,默认文件输出在同目录下。 ## segment( "./temp.dat" , mixseg )
在加载分词引擎时,可以自定义词库路径,同时可以启动不同的引擎:
最大概率法(MPSegment),负责根据Trie树构建有向无环图和进行动态规划算法,是分词算法的核心。
隐式马尔科夫模型(HMMSegment)是根据基于人民日报等语料库构建的HMM模型来进行分词,主要算法思路是根据(B,E,M,S)四个状态来代表每个字的隐藏状态。 HMM模型由dict/hmm_model.utf8提供。分词算法即viterbi算法。
混合模型(MixSegment)是四个分词引擎里面分词效果较好的类,结它合使用最大概率法和隐式马尔科夫模型。
索引模型(QuerySegment)先使用混合模型进行切词,再对于切出来的较长的词,枚举句子中所有可能成词的情况,找出词库里存在。
mixseg2 = worker(type = "mix", dict = "dict/jieba.dict.utf8", hmm = "dict/hmm_model.utf8", user = "dict/test.dict.utf8", detect=T, symbol = F, lines = 1e+05, output = NULL ) mixseg2 ### 输出worker的设置
Worker Type: Mix Segment Detect Encoding : TRUE Default Encoding: UTF-8 Keep Symbols : FALSE Output Path : Write File : TRUE Max Read Lines : 1e+05 Fixed Model Components: $dict [1] "dict/jieba.dict.utf8" $hmm [1] "dict/hmm_model.utf8" $user [1] "dict/test.dict.utf8" $detect $encoding $symbol $output $write $lines can be reset.
可以通过R语言常用的 $
符号重设一些worker
的参数设置 , 如 WorkerName$symbol = T
,在输出中保留标点符号。一些参数在初始化的时候已经确定,无法修改, 可以通过WorkerName$PrivateVarible
来获得这些信息。
mixseg$encoding mixseg$detect = F
可以自定义用户词库,推荐使用深蓝词库转换构建分词词库,它可以快速地将搜狗细胞词库等输入法词库转换为jiebaR的词库格式。
ShowDictPath() ### 显示词典路径 EditDict() ### 编辑用户词典 ?EditDict() ### 打开帮助系统
可以使用 <=.tagger
或者 tag
来进行分词和词性标注, 词性标注使用混合模型模型分词,标注采用和 ictclas 兼容的标记法。
words = "我爱北京天安门" tagger = worker("tag") tagger <= words
r v ns ns "我" "爱" "北京" "天安门"
关键词提取所使用逆向文件频率(IDF)文本语料库可以切换成自定义语料库的路径,使用方法与分词类似。topn
参数为关键词的个数。
keys = worker("keywords", topn = 1) keys <= "我爱北京天安门" keys <= "一个文件路径.txt"
8.9954 "天安门"
对中文文档计算出对应的simhash值。simhash是谷歌用来进行文本去重的算法,现在广泛应用在文本处理中。Simhash引擎先进行分词和关键词提取,后计算Simhash值和海明距离。
words = "hello world!" simhasher = worker("simhash",topn=2) simhasher <= "江州市长江大桥参加了长江大桥的通车仪式"
$simhash [1] "12882166450308878002" $keyword 22.3853 8.69667 "长江大桥" "江州"
$distance [1] "23" $lhs 22.3853 8.69667 "长江大桥" "江州" $rhs 11.7392 11.7392 "hello" "world"
支持 Windows , Linux , Mac 操作系统并行分词。
简单的自然语言统计分析功能。
[更新~] Python网络爬虫与文本数据分析 jiebaR 中文与英文做文本分析很多时候会多一个分词步骤,因为默认情况下,文本分析软件会默认用空格作为分隔符处理文本,所以很多软件需要先将中文文本分词,整理成像英文那样用空格间隔单词的数据形式。 在R中有一个jiebaR中文分词包,可以帮我们做分词操作~ 安装 install.packages("jiebaR") 分词 jiebaR::segme
一、jiebaR中的函数介绍(很大一部分参照jiebaR官方文档:qinwenfeng.com/jiebaR/) **No.1** worker(type = "mix", dict = DICTPATH, hmm = HMMPATH, user = USERPATH,idf = IDFPATH, stop_word = STOPPATH, write = T, qmax = 20, topn =
文本分词与词频统计是中文文本分析的重要内容,也是主题分析和情感分析的基础,因此如何分词以及改进分词效果是进行文本分析的关键。jiebaR包是R语言中进行文本分析一个十分方便的package,能够对中文文本进行有效处理,此外通过能够通过添加自定义词以及去停用词功能,能够进一步修改和完善分词效果,最后可以结合dplyr包进行词频统计,并且利用绘图函数进行词云图、柱状图、扇形图等图形绘制。 1.1当前网
jiebaR 中文分词详解 一、 分词 实现来看一下jiebaR 里面最重要的一个函数worker,通过它,我们可以设置一些分词类型,用户字典,停用词等等,函数语法为: worker(type = "mix" , dict = DICTPATH , hmm = HMMPATH , user = USERPATH , idf = IDFPATH , sto
R语言词云和中文词典包。 jiebaR: for Chinese text segmentation jiebaR中文官网 Quick Start library(jiebaR) cutter = worker() #新建分词器 segment( "This is a good day!" , cutter ) #分词 ## [1] "This" "is" "a" "good" "
http://qinwenfeng.com/jiebaR/ library(jiebaR) wkr = worker() segment("今天天气好晴朗", wkr) library(jiebaR) library(sqldf) TA = read.csv('R/table-A.csv', header = TRUE, sep = ",") txtdf = TA$BAK_TXT TA$BAK_T
中文帮助文档: http://qinwenfeng.com/jiebaR/section-3.html#section-3.0.1 官方英文文档: https://cran.r-project.org/web/packages/jiebaR/jiebaR.pdf 1. 分词 jiebaR提供了四种分词模式,可以通过函数worker()来初始化分词引擎,使用函数segment()进行分词。具体使用?
简介 “结巴”中文分词的R语言版本,支持最大概率法(Maximum Probability), 隐式马尔科夫模型(Hidden Markov Model), 索引模型(QuerySegment), 混合模型(MixSegment), 共四种分词模式, 同时有词性标注,关键词提取,文本Simhash相似度比较等功能。项目使用了Rcpp和CppJieba进行开发。 特性 支持 Windows , Li
对于一个软件来讲,若是开源其发展速度是很快的,在R软件中,去年年底就发布了jiebaR分词包,记得上学的那会jieba包首先是出现在python中,没想到在R软件中也用的到,前几天接了点私活,用这个包帮他做点东西出来,没想到,做到最后不愿意给钱,无良奸商。。。不过也正好也熟悉了一下R中的jiebaR分词包,总体来讲这个包还是蛮强大的,中文分词很准确,能提取关键字,能快速的上手,直接上代码对比pyt
原文地址:http://qinwenfeng.com/cn/ R是什么? 记得刚接触R的时候,有一种莫名的抵触,A、B、C、D、E那么多种语言了,为什么又多冒出来一个R?为了时间序列的课程,我又要多记忆一大堆乱七八糟的语法。当发现居然有dd<-23333 23333->ee 这样的语法时,更瞬间奠定了R语言在我心中的逗比地位。 因为老师没有专门教授R的相关细节,毕竟课程的主题不是那个,加之R的语法
导入停用词表 library(dplyr) stopwords <- readtext::readtext("data/stopwords.txt") %>% as.character() %>% stringr::str_split('\n') %>% unlist() #显示前50个停用词 head(stopwords, n
问题内容: 我希望能够将中文,日文和韩文书写的字符识别为一般组和细分语言。原因如下: 将CJK视为一般团体: 我正在制作一个垂直脚本蒙古语。为此,我需要将文本行旋转90度,因为字形是水平存储在字体中的。但是,对于CJK语言,我需要再次将它们旋转回去,以使它们以正确的方向书写,而只是沿线叠放在一起。 将CJK区分为特定的语言: 我也在制作蒙古文字典,当用户输入CJK字符进行查找时,我想自动识别该语言
R 是用于统计分析,图形表示和报告的编程语言和软件环境。 R 由新西兰奥克兰大学的 Ross Ihaka 和 Robert Gentleman 创建,目前由 R Development Core Team 开发。
Tea 语言是一个和 运行效率接近 C++、开发效率超越 Java 的编程语言。 编译为原生机器码(汇编),兼容主要操作系统和平台。 现代化语言,支持 GC、面向对象、函数式编程、类型推导等流行语言特性。 C 风格,Java 用户可以很快上手。更实用,更适合敏捷开发。 国产。全中文支持。
中文版 Apple 官方 Swift 教程《The Swift Programming Language》 目录: 欢迎使用 Swift 关于 Swift(完成 By numbbbbb) Swift 初见(完成 By numbbbbb) Swift 教程 基础部分(完成 By numbbbbb, lyuka, JaySurplus) 基本操作符(完成 By @xielingwang) 字符串和字符
先来一段前戏 机器学习的过程是训练模型和使用模型的过程,训练就是基于已知数据做统计学习,使用就是用统计学习好的模型来计算未知的数据。 机器学习分为有监督学习和无监督学习,文本分类也分为有监督的分类和无监督的分类。有监督就是训练的样本数据有了确定的判断,基于这些已有的判断来断定新的数据,无监督就是训练的样本数据没有什么判断,完全自发的生成结论。 无论监督学习还是无监督学习,都是通过某种算法来实现,而
图表中的文字及语言相关的内容都是可以自定义及本地化的,下面详细说明。 一、语言及文字 Highcharts 中的文字可以通过 Highcharts.setOptions.lang 来设定,lang 属于全局配置,对当前页面的所有图表有效,对应的汉化后的配置是: // 全局配置,对当前页面的所有图表有效 Highcharts.setOptions({ lang:{ conte
这个页面展示如何使用 Dart 的各个主要特性,从变量、运算符到类和库,并且假定你已经会使用其他编程语言编写代码。 要详细了解 Dart 核心库相关内容,请查阅 Dart 库教程。当你想对一个语言特性深入了解时,无论何时都可以查阅 Dart 语言规范。
Go 语言是一种编程语言,最初由 Robert Griesemer,Rob Pike 和 Ken Thompson 于 2007 年在 Google 开发。 它是一种静态类型语言,其语法类似于 C 语言。