精华内容
下载资源
问答
  • R语言中文分词jiebaR

    万次阅读 2015-02-17 11:22:27
    简介“结巴”中文分词R语言版本,支持最大概率法(Maximum Probability), 隐式马尔科夫模型(Hidden Markov Model), 索引模型(QuerySegment), 混合模型(MixSegment), 共四种分词模式, 同时有词性标注,...

    简介

    “结巴”中文分词的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进行安装。
    *注:本文是ubuntu安装环境

    install.package("jiebaR")
    library(jiebaR)
    # 或者在 Github上安装
    install.packages("devtools")
    library(devtools)
    install_github("qinwf/jiebaR")
    library(jiebaR)

    使用

    jiebaR提供了四种分词模式,可以通过jiebar()来初始化分词引擎,使用segment()进行分词。

    library(jiebaR)
    #  接受默认参数,建立分词引擎 
    mixseg = worker()
    # 相当于:
    # worker( type = "mix", dict = "inst/dict/jieba.dict.utf8",
    #         hmm  = "inst/dict/hmm_model.utf8",    # HMM模型数据
    #         user = "inst/dict/user.dict.utf8")    # 用户自定义词库
    # Initialize jiebaR worker 初始化worker
    This function can initialize jiebaR workers. You can initialize different kinds of workers including mix, mp, hmm, query, tag, simhash, and keywords.
    
    mixseg <= "广东省深圳市联通"    # <= 分词运算符
    # 相当于segment函数,看起来还是用segment函数顺眼一些
    segment(code= "广东省深圳市联通" , jiebar = mixseg)
    # code A Chinese sentence or the path of a text file.
    # jiebar jiebaR Worker
    
    # 分词结果
    # [1] "广东省" "深圳市" "联通" 
    mixseg <= "你知道我不知道"
    # [1] "你"   "知道" "我"   "不"   "知道"
    mixseg <= "我昨天参加了同学婚礼"
    # [1] "我"   "昨天" "参加" "了"   "同学" "婚礼"
    呵呵:分词结果还算不错

    支持对文件进行分词

    mixseg <= "/cwj/thunder/jieba.txt"
    # 这是生成的结果
    [1] "/cwj/thunder/jieba.segment1424152152.15737.txt"

    那么进入linux路径下看一看生成的结果

    root@r-test:/cwj/thunder# ls -l
    total 550636
    -rw-r--r-- 1 root    root    267025364 Feb 14 21:44 a
    -rw-r--r-- 1 root    root    267025364 Feb 15 02:19 a1
    drwxr-xr-x 3 root    root        65536 Feb 15 08:51 aliOSS
    -rw-r--r-- 1 root    root      2144493 Feb 15 03:14 b
    -rw-r--r-- 1 root    root           38 Feb 15 01:04 file1
    -rw-r--r-- 1 root    root           25 Feb 14 22:12 file2
    -rw-r--r-- 1 root    root            0 Feb 15 22:54 file3
    -rw-r--r-- 1 rstudio rstudio  12027150 Feb 15 02:55 hbase_meta_cp_TV_movie
    -rw-r--r-- 1 root    root     12027150 Feb 15 02:55 hbase_meta_cp_TV_movie1
    -rw-r--r-- 1 root    root      3499750 Feb 15 03:55 hbase_meta_cp_TV_movie.gz
    -rw-r--r-- 1 rstudio rstudio       135 Feb 17 00:49 jieba.segment1424152152.15737.txt
    -rw-r--r-- 1 root    root          125 Feb 17 00:47 jieba.txt
    ---x--x--x 1 root    root          406 Feb 15 05:55 mergeData.sh
    
    root@r-test:/cwj/thunder# cat jieba.txt 
    今天是一个伟大的日子,我们的人民是幸福的,我们的日子是美好的,我们的生活是甜蜜的。
    root@r-test:/cwj/thunder# cat jieba.segment1424152152.15737.txt
    今天  一个 伟大  日子 我们  人民  幸福  我们  日子  美好  我们  生活  甜蜜 

    注意:
    在加载分词引擎时,可以自定义词库路径,同时可以启动不同的引擎:

    最大概率法(MPSegment),负责根据Trie树构建有向无环图和进行动态规划算法,是分词算法的核心。

    隐式马尔科夫模型(HMMSegment)是根据基于人民日报等语料库构建的HMM模型来进行分词,主要算法思路是根据(B,E,M,S)四个状态来代表每个字的隐藏状态。 HMM模型由dict/hmm_model.utf8提供。分词算法即viterbi算法。

    混合模型(MixSegment)是四个分词引擎里面分词效果较好的类,结它合使用最大概率法和隐式马尔科夫模型。

    索引模型(QuerySegment)先使用混合模型进行切词,再对于切出来的较长的词,枚举句子中所有可能成词的情况,找出词库里存在。

    mixseg2 = worker(type  = "mix", 
                     dict = "/home/rstudio/R/x86_64-pc-linux-gnu-library/3.1/jiebaRD/dict/jieba.dict.utf8", 
                     hmm   = "/home/rstudio/R/x86_64-pc-linux-gnu-library/3.1/jiebaRD/dict/hmm_model.utf8", 
                     user  = "/home/rstudio/R/x86_64-pc-linux-gnu-library/3.1/jiebaRD/dict/user.dict.utf8", 
                     detect=T,  symbol = F, 
                     lines = 1e+05, output = NULL
                     )  
    # detect 自动检查文件编码,lines一次读取文件的行数
    
    # 输出worker的设置
    mixseg2
    #输出结果如下:   
    Worker Type:  Mix Segment
    
    Detect Encoding :  TRUE
    Default Encoding:  UTF-8
    Keep Symbols    :  FALSE
    Output Path     :  
    Write File      :  TRUE
    By Lines        :  FALSE
    Max Read Lines  :  1e+05
    
    Fixed Model Components:  
    
    $dict
    [1] "/home/rstudio/R/x86_64-pc-linux-gnu-library/3.1/jiebaRD/dict/jieba.dict.utf8"
    
    $hmm
    [1] "/home/rstudio/R/x86_64-pc-linux-gnu-library/3.1/jiebaRD/dict/hmm_model.utf8"
    
    $user
    [1] "/home/rstudio/R/x86_64-pc-linux-gnu-library/3.1/jiebaRD/dict/user.dict.utf8"
    
    $timestamp
    [1] 1424155543
    
    $detect $encoding $symbol $output $write $lines $bylines can be reset.

    可以自定义用户词库

    ShowDictPath()  # 显示词典路径
    EditDict()      # 编辑用户词典
    ?EditDict()     # 打开帮助系统
    
    Usage # 使用方法
    edit_dict(name = "user") # 这个方法过时了
    EditDict(name = "user") 
    Arguments # 参数
    name    
    the name of dictionary including user, system, stop_word.

    词性标注

    cutter = worker(type = "tag")
    cutter_words <- cutter <= "我爱北京天安门"
    cutter_words
           r        v       ns       ns 
         "我"     "爱"     "北京"     "天安门" 
    # "我"  反身代词; "爱" 动词; "北京" 名词

    关键词提取

    关键词提取所使用逆向文件频率(IDF)。文本语料库可以切换成自定义语料库的路径,使用方法与分词类似。topn参数为关键词的个数。

    cutter = worker(type = "keywords", topn = 2)
    cutter_words <- cutter <= "我爱北京天安门"
    cutter_words
      8.9954   4.6674 
      "天安门"   "北京"
    # 根据IDF算法,"我" "爱" 的逆文本频率过低,topn=2,就被过滤掉了

    simhash计算

    cutter = worker(type = "simhash", topn = 2)
    cutter_words <- cutter <= "我爱北京天安门"
    cutter_words
    $simhash
    [1] "4352745221754575559"
    
    $keyword
      8.9954   4.6674 
    "天安门"   "北京" 

    simhash参考

    参考文献

    展开全文
  • 准备用R语言做一个中文分词、然后绘制关键词云图,安装Rwordseg包时碰壁多次,现记录一下安装过程。 系统: win 10 - 64位 java: 1.8.0 - 64位 RStudio:3.4.1 - 64位 首先确保以下步骤正确完成,网上很容易...

        准备用R语言做一个中文分词、然后绘制关键词云图,安装Rwordseg包时碰壁多次,现记录一下安装过程。

        系统:  win 10 - 64位

        java:     1.8.0  - 64位, 上官网就能下。

        RStudio:3.4.1 - 64位, 官网应该有,CSDN资源也有,找不到可以留邮箱给我,不过我不一定每天上线。


        首先确保以下步骤正确完成,网上很容易找到教程或帮助,在此不再赘述:

            1. 正确安装了 java,并且正确配置了环境变量;

            2. 正确安装了 RStudio。

        注意:RStudio 的位数要和 java 的一致,都是32位或都是64位。


      

    图1. 软件 java 和 RStudio

            3. 安装并加载了 rJava 包。

    图2. 加载 rJava 包

        接下来是安装 Rwordseg 包:

            1. 下载 Rwordseg 包文件

                下载路径:https://r-forge.r-project.org/R/?group_id=1054  .

    图3. 下载 Rwordseg 包

                注意,如果是windows安装,选择 .zip 那个版本。 我是 win10 系统,一开始安装时下的 .tar.gz 版本,一直不成功。另外,网上很多帖子上的安装包都是 .tar.gz 版本,所以一开始没有发现这个问题。

            2. 接下来本地安装 Rwordseg 包就可以了。

    图4. 本地安装 Rwordseg 包

                选择工具栏的 【程序包】 -> 【Install package(s) from local files ...】,然后加载刚刚下载的包就可以。

        3. library(Rwordseg)

    图5. 加载 Rwordseg 包


    展开全文
  • R语言中文分词Rwordseg的安装 装起来有点复杂。 需要安装jdk,Rtools,rJava才能安装Rwordseg,具体步骤如下: 第一步,安装jdk,过程略。 第二步,安装Rtools: 下载地址:...

    ###详细步骤

    装起来有点复杂。
    需要安装jdk,Rtools,rJava才能安装Rwordseg,具体步骤如下:
    第一步,安装jdk,过程略。
    第二步,安装Rtools:
    : 下载地址:https://cran.r-project.org/bin/windows/Rtools/
    说明:如果电脑使用的R版本是3.3.x,那么就下载Rtools33.exe,如果说你的R版本是3.2.x或者更低的版本,那就不要使用Rtools33.exe,可以选择安装其他版本。

    Rtools下载完之后,直接点击安装。
    检查环境是否配置成功:
    打开R,分别输入下面两天指令,看有无包错:
    代码块语法遵循标准markdown代码,例如:

    system('g++ -v')
    system('where make')
    

    如果报错,那么就要检查环境变量是否设置正确。进入 环境变量 设置,在 系统变量 中点击 path,加入“;D:\Rtools\bin;D:\Rtools\gcc-4.6.3\bin"(3.5以上的路径是“D:\R-3.5.1\Rtools\mingw_64\bin,”注意修改你自己的安装目录)。
    重启R,重新输入刚才输入的那两条指令。如果出现下面这样的结果则表示安装配置好了。
    安装RTools

    第三步,安装rJava。
    首先还是环境变量配置。JAVA_HOME,我之前在装Java的时候是这样设置的"D:\Java\jdk1.8.0_131;D:\Java\jdk1.8.0_131\bin",如果之前Java已经装好了,这里不用修改。
    然后是classpath:
    “.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;D:\Java\jre1.8.0_131\bin\server”。
    其中";D:\Java\jre1.8.0_131\bin\server"是需要本步写入的,之前的是装Java的时候配置的。
    最后是path:
    “*;%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;D:\Rtools\bin;D:\Rtools\gcc-4.6.3\bin;D:\Java\jdk1.8.0_131\bin;D:\Java\jre1.8.0_131\bin\server”。
    其中,";D:\Java\jdk1.8.0_131\bin;D:\Java\jre1.8.0_131\bin\server”是本步写入的,之前的是安装Java和Rtools配置的。

    安装rjava包:

    if (!suppressWarnings(require("rJava"))) {
    	install.packages("rJava")
    	require("rJava")
    }
    

    rJava安装时,可能因为java版本不对需要重装java,可能报这个错误:“lazy-load database ‘C:/Users/sony/Documents/R/win-library/3.1/rJava/R/rJava.rdb’ is corrupt”,可以参考:
    https://www.jianshu.com/p/d6cdaf35dde3

    第四步,安装Rwordseg包,好像install.packages的方法会报错,我这里用选择从本地安装:
    Rwordseg包下载地址:
    https://r-forge.r-project.org/R/?group_id=1054

    我的是Windows系统,所以下载Zip了。
    Rwordseg

    然后从本地安装:
    本地安装Rwordseg

    装完试下,

    library(Rwordseg)
    require(rJava)
    
    >segmentCN("终于把分词包装好了")
    >[1] "终于" "把"   "分词" "包装" "好"   "了"  
    
    展开全文
  • R语言中文分词工具

    2016-12-27 10:46:58
    使用默认方法安装相关R中文文本挖掘包(tmcn、Rwordseg、Rweibo)时,会出现安装失败。合适的方法是:通过源代码安装相关包的程序:手工下载源代码及其依赖,然后编译安装。 首先是基础性的tm包。tm包是R文本挖掘的...

    Rwordseg、Rweibo、tm的安装

    使用默认方法安装相关R中文文本挖掘包(tmcn、Rwordseg、Rweibo)时,会出现安装失败。合适的方法是:通过源代码安装相关包的程序:手工下载源代码及其依赖,然后编译安装。

    首先是基础性的tm包。tm包是R文本挖掘的通用包。直接使用install.package即可安装。

    1
    
    install.packages("tm")
    

    tmcnRwordsegRweibo是李舰等人开发的中文文本挖掘包。三个网页(官网)中提供了包说明与安装方法。但经测试,其中的安装方法不可用。

    正确的安装方法为

    先下载tmcn、[Rwordseg]、Rweibo
    的源码。

    tmcn无依赖关系,直接使用。

    1
    
    install.packages("~/Downloads/tmcn_0.1-3.tar", repos=NULL, type="source")
    

    Rwordseg依赖于rJava。

    该包需要预先安装Java环境。如果未曾安装Java,请先安装Java,安装Java(及PATH的配置)过程不再赘述。

    1
    2
    
    install.packages("rJava")  
    install.packages("~/Downloads/Rwordseg_0.2-1.tar", repos=NULL, type="source")
    

    Rweibo依赖于RCurl、rjson、XML、digest四个包。

    这四个依赖包同样不能直接安装,需要先从科大源下载源码:(按包名搜索RCurl、XML、rjson、digest),然后再安装。

    1
    2
    3
    4
    5
    6
    7
    
    install.packages("bitops") #RCurl的依赖  
    install.packages("~/Downloads/RCurl_1.95-4.1.tar", repos=NULL, type="source")  
    install.packages("~/Downloads/XML_3.98-1.1.tar", repos=NULL, type="source")  
    install.packages("~/Downloads/rjson_0.2.13.tar", repos=NULL, type="source")  
    install.packages("~/Downloads/digest_0.6.4.tar", repos=NULL, type="source")  
      
    install.packages("~/Downloads/Rweibo_0.2-9.tar", repos=NULL, type="source")
    
    展开全文
  • github地址:... jiebaR ..."结巴"中文分词R语言版本,支持最大概率法(Maximum Probability),隐式马尔科夫模型(Hidden Markov Model),索引模型(QuerySegment),混合模型(Mix
  • R语言中文分词包jiebaR

    千次阅读 2016-07-21 19:15:52
    R语言作为统计学一门语言,一直在小众领域闪耀着光芒。直到大数据的爆发,R语言变成了一门炙手可热的数据分析的利器。随着越来越多的工程背景的人的加入,R语言的社区在迅速扩大成长。现在已不仅仅是统计领域,教育...
  • jiebaR:使用R.R语言中文分词(文档已更新:party_popper::https:qinwenfeng.comjiebaR)进行中文文本分割
  • 几种R语言中文分词工具安装尝试

    千次阅读 2015-04-03 10:53:16
    由于在进行实验时需要应用到中文分词,因此决定尝试安装中文分词R包; #rmmseg4j安装install.packages("rmmseg4j", repos="http://R-Forge.R-project.org",type='source')结果发现:install.packages("rmmseg4j",...
  • R语言进行中文分词

    千次阅读 2015-02-01 23:00:30
    用两种方法进行中文分词:Rwordseg和jiebaR R语言的环境配置: R_Path: C:\Program Files\R\R-3.1.2 Path: %R_Path%

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,847
精华内容 3,938
关键字:

r语言中文分词