zoukankan      html  css  js  c++  java
  • pyltp的安装与简单实用分词

    from pyltp import Segmentor
    segmentor=Segmentor()
    segmentor.load("cws.model")#你自己的路径
    words=segmentor.segment("元芳你怎么看")
    print("|".join(words))
    segmentor.release()

    首先要寻找相应python版本的库,在那个虚拟环境下使用:如3.5版本的用我的tensorflow虚拟环境,

    这个方法首先要下载pyltp相应的whl安装包,这里提供一个免费可用的下载地址:
    windows下python3.5
    https://link.zhihu.com/?target=http%3A//mlln.cn/2018/01/31/pyltp%E5%9C%A8windows%E4%B8%8B%E7%9A%84%E7%BC%96%E8%AF%91%E5%AE%89%E8%A3%85/pyltp-0.2.1-cp35-cp35m-win_amd64.whl
    Windows下python3.6
    https://link.zhihu.com/?target=http%3A//mlln.cn/2018/01/31/pyltp%E5%9C%A8windows%E4%B8%8B%E7%9A%84%E7%BC%96%E8%AF%91%E5%AE%89%E8%A3%85/pyltp-0.2.1-cp36-cp36m-win_amd64.whl
    然后网上有很多教程都会告诉你打开cmd(命令提示符),进入python的pip.exe文件路径下,这个路径一般为:

    C:UsersadministratorAppDataLocalProgramsPythonPython36Scripts
    1
    这里先将pyltp-0.2.1-cp36-cp36m-win_amd64.whl和pip.exe放在同一目录下:

    使用命令:

    pip install pyltp-0.2.1-cp36-cp36m-win_amd64.whl

    成功安装的办法
    同样是在cmd中使用pip指令,只不过输入命令格式不一样:

    python -m pip install pyltp-0.2.1-cp36-cp36m-win_amd64.whl

    第二种方案: 安装wheel


    下载wheels

    下面两个文件针对不同的python版本下载一个即可, 这是我在自己的电脑(win10)上编译的,不知道你的系统是否能用,64bit的windows应该都可以,有问题在下面留言。

    注意: 这两个文件的区别是python版本号

    安装文件

    下载好了以后, 在命令行下, cd到wheel文件所在的目录, 然后使用命令pip install wheel文件名安装.

    测试

    安装好了以后, 打开python shell, 试用一下.

    1
    2
    3
    from pyltp import SentenceSplitter
    sents = SentenceSplitter.split('元芳你怎么看?我就趴窗口上看呗!') # 分句
    print(' '.join(sents))


    ————————————————

    还要下载这个model

    http://ltp.ai/download.html

    选择追新版本的下载

    下面是Synonyms的使用

    Chinese Synonyms for Natural Language Processing and Understanding.

    最好的中文近义词工具包。

    synonyms可以用于自然语言理解的很多任务:文本对齐,推荐算法,相似度计算,语义偏移,关键字提取,概念提取,自动摘要,搜索引擎等。

    Table of Content:

    Welcome

    1.  
      pip install -U synonyms
    2.  
       

    兼容py2和py3,当前稳定版本 v3.x

    Node.js 用户可以使用 node-synonyms了。

    npm install node-synonyms
    

    本文档的配置和接口说明面向python工具包, node版本查看项目

    Usage

    支持使用环境变量配置分词词表和word2vec词向量文件。

    环境变量描述
    SYNONYMS_WORD2VEC_BIN_MODEL_ZH_CN 使用word2vec训练的词向量文件,二进制格式。
    SYNONYMS_WORDSEG_DICT 中文分词主字典,格式和使用参考

    synonyms#seg

    中文分词

    1.  
      import synonyms
    2.  
      synonyms.seg("中文近义词工具包")

    分词结果,由两个list组成的元组,分别是单词和对应的词性。

    (['中文', '近义词', '工具包'], ['nz', 'n', 'n'])
    

    该分词不去停用词和标点。

    synonyms#nearby

    1.  
      import synonyms
    2.  
      print("人脸: %s" % (synonyms.nearby("人脸")))
    3.  
      print("识别: %s" % (synonyms.nearby("识别")))
    4.  
      print("NOT_EXIST: %s" % (synonyms.nearby("NOT_EXIST")))

    synonyms.nearby(WORD)返回一个元组,元组中包含两项:([nearby_words], [nearby_words_score])nearby_words是WORD的近义词们,也以list的方式存储,并且按照距离的长度由近及远排列,nearby_words_scorenearby_words中对应位置的词的距离的分数,分数在(0-1)区间内,越接近于1,代表越相近。比如:

    1.  
      synonyms.nearby(人脸) = (
    2.  
      ["图片", "图像", "通过观察", "数字图像", "几何图形", "脸部", "图象", "放大镜", "面孔", "Mii"],
    3.  
      [0.597284, 0.580373, 0.568486, 0.535674, 0.531835, 0.530
    4.  
      095, 0.525344, 0.524009, 0.523101, 0.516046])

    在OOV的情况下,返回 ([], []),目前的字典大小: 125,792。

    synonyms#compare

    两个句子的相似度比较

    1.  
      sen1 = "发生历史性变革"
    2.  
      sen2 = "发生历史性变革"
    3.  
      r = synonyms.compare(sen1, sen2, seg=True)
    4.  
       

    其中,参数 seg 表示 synonyms.compare是否对sen1 和 sen2进行分词,默认为 True。返回值:[0-1],并且越接近于1代表两个句子越相似。

    1.  
      旗帜引领方向 vs 道路决定命运: 0.429
    2.  
      旗帜引领方向 vs 旗帜指引道路: 0.93
    3.  
      发生历史性变革 vs 发生历史性变革: 1.0
    4.  
       

    synonyms#display

    以友好的方式打印近义词,方便调试,display调用了 synonyms#nearby 方法。

    1.  
      >>> synonyms.display("飞机")
    2.  
      '飞机'近义词:
    3.  
      1. 架飞机:0.837399
    4.  
      2. 客机:0.764609
    5.  
      3. 直升机:0.762116
    6.  
      4. 民航机:0.750519
    7.  
      5. 航机:0.750116
    8.  
      6. 起飞:0.735736
    9.  
      7. 战机:0.734975
    10.  
      8. 飞行中:0.732649
    11.  
      9. 航空器:0.723945
    12.  
      10. 运输机:0.720578
    13.  
       

    PCA

    以“人脸”为例主要成分分析:

    Quick Get Start

    1.  
      $ pip install -r Requirements.txt
    2.  
      $ python demo.py
    3.  
       

    Change logs

    更新情况说明

    Voice of Users

    用户怎么说:

    Data

    data is built based on wikidata-corpus.

    Valuation

    同义词词林

    《同义词词林》是梅家驹等人于1983年编纂而成,现在使用广泛的是哈工大社会计算与信息检索研究中心维护的《同义词词林扩展版》,它精细的将中文词汇划分成大类和小类,梳理了词汇间的关系,同义词词林扩展版包含词语7万余条,其中3万余条被以开放数据形式共享。

    知网, HowNet

    HowNet,也被称为知网,它并不只是一个语义字典,而是一个知识系统,词汇之间的关系是其一个基本使用场景。知网包含词语8余条。

    国际上对词语相似度算法的评价标准普遍采用 Miller&Charles 发布的英语词对集的人工判定值。该词对集由十对高度相关、十对中度相关、十对低度相关共 30 个英语词对组成,然后让38个受试者对这30对进行语义相关度判断,最后取他们的平均值作为人工判定标准。然后不同近义词工具也对这些词汇进行相似度评分,与人工判定标准做比较,比如使用皮尔森相关系数。在中文领域,使用这个词表的翻译版进行中文近义词比较也是常用的办法。

    对比

    Synonyms的词表容量是125,792,下面选择一些在同义词词林、知网和Synonyms都存在的几个词,给出其近似度的对比:

    注:同义词林及知网数据、分数来源。Synonyms也在不断优化中,新的分数可能和上图不一致。

    更多比对结果

    Benchmark

    Test with py3, MacBook Pro.

    1.  
      python benchmark.py
    2.  
       

    ++++++++++ OS Name and version ++++++++++

    Platform: Darwin

    Kernel: 16.7.0

    Architecture: ('64bit', '')

    ++++++++++ CPU Cores ++++++++++

    Cores: 4

    CPU Load: 60

    ++++++++++ System Memory ++++++++++

    meminfo 8GB

    synonyms#nearby: 100000 loops, best of 3 epochs: 0.209 usec per loop

    Live Sharing

    52nlp.cn

    机器之心

    线上分享实录: Synonyms 中文近义词工具包 @ 2018-02-07

    Statement

    Synonyms发布证书 MIT。数据和程序可用于研究和商业产品,必须注明引用和地址,比如发布的任何媒体、期刊、杂志或博客等内容。

    1.  
      @online{Synonyms:hain2017,
    2.  
      author = {Hai Liang Wang, Hu Ying Xi},
    3.  
      title = {中文近义词工具包Synonyms},
    4.  
      year = 2017,
    5.  
      url = {https://github.com/huyingxi/Synonyms},
    6.  
      urldate = {2017-09-27}
    7.  
      }

    References

    wikidata-corpus

    word2vec原理推导与代码分析

    Frequently Asked Questions (FAQ)

    1. 是否支持添加单词到词表中?

    不支持,欲了解更多请看 #5

    1. 词向量的训练是用哪个工具?

    Google发布的word2vec,该库由C语言编写,内存使用效率高,训练速度快。gensim可以加载word2vec输出的模型文件。

    1. 相似度计算的方法是什么?

    详见 #64

    Authors

    Hai Liang Wang

    Hu Ying Xi

    Give credits to

    Word2vec by Google

    Wikimedia: 训练语料来源

    gensim: word2vec.py

    SentenceSim: 相似度评测语料

    jieba: 中文分词

    License

    MIT

    原文地址:https://php.ctolib.com/article/wiki/73751

  • 相关阅读:
    fork 开源项目后如何参与项目
    C51 头文件中的 extern
    windows常用命令
    boost(barrier)
    boost库(条件变量)
    线程间同步的几种方式(了解)
    stl 迭代器(了解)
    std::thread
    同步,异步,阻塞,非阻塞
    std::thread join和detach区别
  • 原文地址:https://www.cnblogs.com/klausage/p/11716155.html
Copyright © 2011-2022 走看看