精华内容
下载资源
问答
  • 我的python环境是Anaconda3安装的,由于项目需要用到分词,使用jieba分词库,在此总结一下安装方法。安装说明=======代码对 Python 2/3 均兼容* 全自动安装:`easy_install jieba` 或者 `pip install jieba` / `pip3...

    我的python环境是Anaconda3安装的,由于项目需要用到分词,使用jieba分词库,在此总结一下安装方法。

    安装说明

    =======

    代码对 Python 2/3 均兼容

    * 全自动安装:`easy_install jieba` 或者 `pip install jieba` / `pip3 install jieba`

    * 半自动安装:先下载 http://pypi.python.org/pypi/jieba/ ,解压后运行 `python setup.py install`

    * 手动安装:将 jieba 目录放置于当前目录或者 site-packages 目录

    * 通过 `import jieba` 来引用

    我使用了第二种方法。

    首先上githup下载jieba分词库

    然后加压到任意目录

    打开cmd命令行窗口并切换到jieba目录下

    运行python setup.py install完成安装

    在项目中使用import jieba使用jieba分词库

    ==================================================================================================

    以下内容来自readme文件

    算法

    ========

    * 基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图 (DAG)

    * 采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合

    * 对于未登录词,采用了基于汉字成词能力的 HMM 模型,使用了 Viterbi 算法

    主要功能

    =======

    1. 分词

    --------

    * `jieba.cut` 方法接受三个输入参数: 需要分词的字符串;cut_all 参数用来控制是否采用全模式;HMM 参数用来控制是否使用 HMM 模型

    * `jieba.cut_for_search` 方法接受两个参数:需要分词的字符串;是否使用 HMM 模型。该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细

    * 待分词的字符串可以是 unicode 或 UTF-8 字符串、GBK 字符串。注意:不建议直接输入 GBK 字符串,可能无法预料地错误解码成 UTF-8

    * `jieba.cut` 以及 `jieba.cut_for_search` 返回的结构都是一个可迭代的 generator,可以使用 for 循环来获得分词后得到的每一个词语(unicode),或者用

    * `jieba.lcut` 以及 `jieba.lcut_for_search` 直接返回 list

    * `jieba.Tokenizer(dictionary=DEFAULT_DICT)` 新建自定义分词器,可用于同时使用不同词典。`jieba.dt` 为默认分词器,所有全局分词相关函数都是该分词器的映射。

    代码示例

    ```python

    #encoding=utf-8

    importjieba

    seg_list= jieba.cut("我来到北京清华大学", cut_all=True)print("Full Mode:" + "/".join(seg_list)) #全模式

    seg_list= jieba.cut("我来到北京清华大学", cut_all=False)print("Default Mode:" + "/".join(seg_list)) #精确模式

    seg_list= jieba.cut("他来到了网易杭研大厦") #默认是精确模式

    print(",".join(seg_list))

    seg_list= jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造") #搜索引擎模式

    print(",".join(seg_list))

    ```

    输出:

    【全模式】: 我/ 来到/ 北京/ 清华/ 清华大学/ 华大/ 大学

    【精确模式】: 我/ 来到/ 北京/ 清华大学

    【新词识别】:他, 来到, 了, 网易, 杭研, 大厦 (此处,“杭研”并没有在词典中,但是也被Viterbi算法识别出来了)

    【搜索引擎模式】: 小明, 硕士, 毕业, 于, 中国, 科学, 学院, 科学院, 中国科学院, 计算, 计算所, 后, 在, 日本, 京都, 大学, 日本京都大学, 深造

    2. 添加自定义词典

    ----------------

    ### 载入词典

    * 开发者可以指定自己自定义的词典,以便包含 jieba 词库里没有的词。虽然 jieba 有新词识别能力,但是自行添加新词可以保证更高的正确率

    * 用法: jieba.load_userdict(file_name) # file_name 为文件类对象或自定义词典的路径

    * 词典格式和 `dict.txt` 一样,一个词占一行;每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。`file_name` 若为路径或二进制方式打开的文件,则文件必须为 UTF-8 编码。

    * 词频省略时使用自动计算的能保证分出该词的词频。

    **例如:**

    ```

    创新办 3 i

    云计算 5

    凱特琳 nz

    台中

    ```

    * 更改分词器(默认为 `jieba.dt`)的 `tmp_dir` 和 `cache_file` 属性,可分别指定缓存文件所在的文件夹及其文件名,用于受限的文件系统。

    * 范例:

    * 自定义词典:https://github.com/fxsjy/jieba/blob/master/test/userdict.txt

    * 用法示例:https://github.com/fxsjy/jieba/blob/master/test/test_userdict.py

    * 之前: 李小福 / 是 / 创新 / 办 / 主任 / 也 / 是 / 云 / 计算 / 方面 / 的 / 专家 /

    * 加载自定义词库后: 李小福 / 是 / 创新办 / 主任 / 也 / 是 / 云计算 / 方面 / 的 / 专家 /

    ### 调整词典

    * 使用 `add_word(word, freq=None, tag=None)` 和 `del_word(word)` 可在程序中动态修改词典。

    * 使用 `suggest_freq(segment, tune=True)` 可调节单个词语的词频,使其能(或不能)被分出来。

    * 注意:自动计算的词频在使用 HMM 新词发现功能时可能无效。

    代码示例:

    ```pycon

    >>> print('/'.join(jieba.cut('如果放到post中将出错。', HMM=False)))

    如果/放到/post/中将/出错/。

    >>> jieba.suggest_freq(('中', '将'), True)

    494

    >>> print('/'.join(jieba.cut('如果放到post中将出错。', HMM=False)))

    如果/放到/post/中/将/出错/。

    >>> print('/'.join(jieba.cut('「台中」正确应该不会被切开', HMM=False)))

    「/台/中/」/正确/应该/不会/被/切开

    >>> jieba.suggest_freq('台中', True)

    69

    >>> print('/'.join(jieba.cut('「台中」正确应该不会被切开', HMM=False)))

    「/台中/」/正确/应该/不会/被/切开

    ```

    * "通过用户自定义词典来增强歧义纠错能力" --- https://github.com/fxsjy/jieba/issues/14

    3. 关键词提取

    -------------

    ### 基于 TF-IDF 算法的关键词抽取

    `import jieba.analyse`

    * jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())

    * sentence 为待提取的文本

    * topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20

    * withWeight 为是否一并返回关键词权重值,默认值为 False

    * allowPOS 仅包括指定词性的词,默认值为空,即不筛选

    * jieba.analyse.TFIDF(idf_path=None) 新建 TFIDF 实例,idf_path 为 IDF 频率文件

    代码示例 (关键词提取)

    https://github.com/fxsjy/jieba/blob/master/test/extract_tags.py

    关键词提取所使用逆向文件频率(IDF)文本语料库可以切换成自定义语料库的路径

    * 用法: jieba.analyse.set_idf_path(file_name) # file_name为自定义语料库的路径

    * 自定义语料库示例:https://github.com/fxsjy/jieba/blob/master/extra_dict/idf.txt.big

    * 用法示例:https://github.com/fxsjy/jieba/blob/master/test/extract_tags_idfpath.py

    关键词提取所使用停止词(Stop Words)文本语料库可以切换成自定义语料库的路径

    * 用法: jieba.analyse.set_stop_words(file_name) # file_name为自定义语料库的路径

    * 自定义语料库示例:https://github.com/fxsjy/jieba/blob/master/extra_dict/stop_words.txt

    * 用法示例:https://github.com/fxsjy/jieba/blob/master/test/extract_tags_stop_words.py

    关键词一并返回关键词权重值示例

    * 用法示例:https://github.com/fxsjy/jieba/blob/master/test/extract_tags_with_weight.py

    ### 基于 TextRank 算法的关键词抽取

    * jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v')) 直接使用,接口相同,注意默认过滤词性。

    * jieba.analyse.TextRank() 新建自定义 TextRank 实例

    算法论文: [TextRank: Bringing Order into Texts](http://web.eecs.umich.edu/~mihalcea/papers/mihalcea.emnlp04.pdf)

    #### 基本思想:

    1. 将待抽取关键词的文本进行分词

    2. 以固定窗口大小(默认为5,通过span属性调整),词之间的共现关系,构建图

    3. 计算图中节点的PageRank,注意是无向带权图

    #### 使用示例:

    见 [test/demo.py](https://github.com/fxsjy/jieba/blob/master/test/demo.py)

    4. 词性标注

    -----------

    * `jieba.posseg.POSTokenizer(tokenizer=None)` 新建自定义分词器,`tokenizer` 参数可指定内部使用的 `jieba.Tokenizer` 分词器。`jieba.posseg.dt` 为默认词性标注分词器。

    * 标注句子分词后每个词的词性,采用和 ictclas 兼容的标记法。

    * 用法示例

    ```pycon

    >>> import jieba.posseg as pseg

    >>> words = pseg.cut("我爱北京天安门")

    >>> for word, flag in words:

    ... print('%s %s' % (word, flag))

    ...

    我 r

    爱 v

    北京 ns

    天安门 ns

    ```

    5. 并行分词

    -----------

    * 原理:将目标文本按行分隔后,把各行文本分配到多个 Python 进程并行分词,然后归并结果,从而获得分词速度的可观提升

    * 基于 python 自带的 multiprocessing 模块,目前暂不支持 Windows

    * 用法:

    * `jieba.enable_parallel(4)` # 开启并行分词模式,参数为并行进程数

    * `jieba.disable_parallel()` # 关闭并行分词模式

    * 例子:https://github.com/fxsjy/jieba/blob/master/test/parallel/test_file.py

    * 实验结果:在 4 核 3.4GHz Linux 机器上,对金庸全集进行精确分词,获得了 1MB/s 的速度,是单进程版的 3.3 倍。

    * **注意**:并行分词仅支持默认分词器 `jieba.dt` 和 `jieba.posseg.dt`。

    6. Tokenize:返回词语在原文的起止位置

    ----------------------------------

    * 注意,输入参数只接受 unicode

    * 默认模式

    ```python

    result = jieba.tokenize(u'永和服装饰品有限公司')

    for tk in result:

    print("word %s start: %d end:%d" % (tk[0],tk[1],tk[2]))

    ```

    ```

    word 永和 start: 0 end:2

    word 服装 start: 2 end:4

    word 饰品 start: 4 end:6

    word 有限公司 start: 6 end:10

    ```

    * 搜索模式

    ```python

    result = jieba.tokenize(u'永和服装饰品有限公司', mode='search')

    for tk in result:

    print("word %s start: %d end:%d" % (tk[0],tk[1],tk[2]))

    ```

    ```

    word 永和 start: 0 end:2

    word 服装 start: 2 end:4

    word 饰品 start: 4 end:6

    word 有限 start: 6 end:8

    word 公司 start: 8 end:10

    word 有限公司 start: 6 end:10

    ```

    7. ChineseAnalyzer for Whoosh 搜索引擎

    --------------------------------------------

    * 引用: `from jieba.analyse import ChineseAnalyzer`

    * 用法示例:https://github.com/fxsjy/jieba/blob/master/test/test_whoosh.py

    8. 命令行分词

    -------------------

    使用示例:`python -m jieba news.txt > cut_result.txt`

    命令行选项(翻译):

    使用: python -m jieba [options] filename

    结巴命令行界面。

    固定参数:

    filename 输入文件

    可选参数:

    -h, --help 显示此帮助信息并退出

    -d [DELIM], --delimiter [DELIM]

    使用 DELIM 分隔词语,而不是用默认的' / '。

    若不指定 DELIM,则使用一个空格分隔。

    -p [DELIM], --pos [DELIM]

    启用词性标注;如果指定 DELIM,词语和词性之间

    用它分隔,否则用 _ 分隔

    -D DICT, --dict DICT 使用 DICT 代替默认词典

    -u USER_DICT, --user-dict USER_DICT

    使用 USER_DICT 作为附加词典,与默认词典或自定义词典配合使用

    -a, --cut-all 全模式分词(不支持词性标注)

    -n, --no-hmm 不使用隐含马尔可夫模型

    -q, --quiet 不输出载入信息到 STDERR

    -V, --version 显示版本信息并退出

    如果没有指定文件名,则使用标准输入。

    `--help` 选项输出:

    $> python -m jieba --help

    Jieba command line interface.

    positional arguments:

    filename input file

    optional arguments:

    -h, --help show this help message and exit

    -d [DELIM], --delimiter [DELIM]

    use DELIM instead of ' / ' for word delimiter; or a

    space if it is used without DELIM

    -p [DELIM], --pos [DELIM]

    enable POS tagging; if DELIM is specified, use DELIM

    instead of '_' for POS delimiter

    -D DICT, --dict DICT use DICT as dictionary

    -u USER_DICT, --user-dict USER_DICT

    use USER_DICT together with the default dictionary or

    DICT (if specified)

    -a, --cut-all full pattern cutting (ignored with POS tagging)

    -n, --no-hmm don't use the Hidden Markov Model

    -q, --quiet don't print loading messages to stderr

    -V, --version show program's version number and exit

    If no filename specified, use STDIN instead.

    延迟加载机制

    ------------

    jieba 采用延迟加载,`import jieba` 和 `jieba.Tokenizer()` 不会立即触发词典的加载,一旦有必要才开始加载词典构建前缀字典。如果你想手工初始 jieba,也可以手动初始化。

    import jieba

    jieba.initialize() # 手动初始化(可选)

    在 0.28 之前的版本是不能指定主词典的路径的,有了延迟加载机制后,你可以改变主词典的路径:

    jieba.set_dictionary('data/dict.txt.big')

    例子: https://github.com/fxsjy/jieba/blob/master/test/test_change_dictpath.py

    其他词典

    ========

    1. 占用内存较小的词典文件

    https://github.com/fxsjy/jieba/raw/master/extra_dict/dict.txt.small

    2. 支持繁体分词更好的词典文件

    https://github.com/fxsjy/jieba/raw/master/extra_dict/dict.txt.big

    下载你所需要的词典,然后覆盖 jieba/dict.txt 即可;或者用 `jieba.set_dictionary('data/dict.txt.big')`

    其他语言实现

    ==========

    结巴分词 Java 版本

    ----------------

    作者:piaolingxue

    地址:https://github.com/huaban/jieba-analysis

    结巴分词 C++ 版本

    ----------------

    作者:yanyiwu

    地址:https://github.com/yanyiwu/cppjieba

    结巴分词 Node.js 版本

    ----------------

    作者:yanyiwu

    地址:https://github.com/yanyiwu/nodejieba

    结巴分词 Erlang 版本

    ----------------

    作者:falood

    地址:https://github.com/falood/exjieba

    结巴分词 R 版本

    ----------------

    作者:qinwf

    地址:https://github.com/qinwf/jiebaR

    结巴分词 iOS 版本

    ----------------

    作者:yanyiwu

    地址:https://github.com/yanyiwu/iosjieba

    结巴分词 PHP 版本

    ----------------

    作者:fukuball

    地址:https://github.com/fukuball/jieba-php

    结巴分词 .NET(C#) 版本

    ----------------

    作者:anderscui

    地址:https://github.com/anderscui/jieba.NET/

    结巴分词 Go 版本

    ----------------

    + 作者: wangbin 地址: https://github.com/wangbin/jiebago

    + 作者: yanyiwu 地址: https://github.com/yanyiwu/gojieba

    系统集成

    ========

    1. Solr: https://github.com/sing1ee/jieba-solr

    分词速度

    =========

    * 1.5 MB / Second in Full Mode

    * 400 KB / Second in Default Mode

    * 测试环境: Intel(R) Core(TM) i7-2600 CPU @ 3.4GHz;《围城》.txt

    常见问题

    =========

    ## 1. 模型的数据是如何生成的?

    详见: https://github.com/fxsjy/jieba/issues/7

    ## 2. “台中”总是被切成“台 中”?(以及类似情况)

    P(台中) < P(台)×P(中),“台中”词频不够导致其成词概率较低

    解决方法:强制调高词频

    `jieba.add_word('台中')` 或者 `jieba.suggest_freq('台中', True)`

    ## 3. “今天天气 不错”应该被切成“今天 天气 不错”?(以及类似情况)

    解决方法:强制调低词频

    `jieba.suggest_freq(('今天', '天气'), True)`

    或者直接删除该词 `jieba.del_word('今天天气')`

    ## 4. 切出了词典中没有的词语,效果不理想?

    解决方法:关闭新词发现

    `jieba.cut('丰田太省了', HMM=False)`

    `jieba.cut('我们中出了一个叛徒', HMM=False)`

    **更多问题请点击**:https://github.com/fxsjy/jieba/issues?sort=updated&state=closed

    修订历史

    ==========

    https://github.com/fxsjy/jieba/blob/master/Changelog

    --------------------

    jieba

    ========

    "Jieba" (Chinese for "to stutter") Chinese text segmentation: built to be the best Python Chinese word segmentation module.

    Features

    ========

    * Support three types of segmentation mode:

    1. Accurate Mode attempts to cut the sentence into the most accurate segmentations, which is suitable for text analysis.

    2. Full Mode gets all the possible words from the sentence. Fast but not accurate.

    3. Search Engine Mode, based on the Accurate Mode, attempts to cut long words into several short words, which can raise the recall rate. Suitable for search engines.

    * Supports Traditional Chinese

    * Supports customized dictionaries

    * MIT License

    Online demo

    =========

    http://jiebademo.ap01.aws.af.cm/

    (Powered by Appfog)

    Usage

    ========

    * Fully automatic installation: `easy_install jieba` or `pip install jieba`

    * Semi-automatic installation: Download http://pypi.python.org/pypi/jieba/ , run `python setup.py install` after extracting.

    * Manual installation: place the `jieba` directory in the current directory or python `site-packages` directory.

    * `import jieba`.

    Algorithm

    ========

    * Based on a prefix dictionary structure to achieve efficient word graph scanning. Build a directed acyclic graph (DAG) for all possible word combinations.

    * Use dynamic programming to find the most probable combination based on the word frequency.

    * For unknown words, a HMM-based model is used with the Viterbi algorithm.

    Main Functions

    ==============

    1. Cut

    --------

    * The `jieba.cut` function accepts three input parameters: the first parameter is the string to be cut; the second parameter is `cut_all`, controlling the cut mode; the third parameter is to control whether to use the Hidden Markov Model.

    * `jieba.cut_for_search` accepts two parameter: the string to be cut; whether to use the Hidden Markov Model. This will cut the sentence into short words suitable for search engines.

    * The input string can be an unicode/str object, or a str/bytes object which is encoded in UTF-8 or GBK. Note that using GBK encoding is not recommended because it may be unexpectly decoded as UTF-8.

    * `jieba.cut` and `jieba.cut_for_search` returns an generator, from which you can use a `for` loop to get the segmentation result (in unicode).

    * `jieba.lcut` and `jieba.lcut_for_search` returns a list.

    * `jieba.Tokenizer(dictionary=DEFAULT_DICT)` creates a new customized Tokenizer, which enables you to use different dictionaries at the same time. `jieba.dt` is the default Tokenizer, to which almost all global functions are mapped.

    **Code example: segmentation**

    ```python

    #encoding=utf-8

    import jieba

    seg_list = jieba.cut("我来到北京清华大学", cut_all=True)

    print("Full Mode: " + "/ ".join(seg_list)) # 全模式

    seg_list = jieba.cut("我来到北京清华大学", cut_all=False)

    print("Default Mode: " + "/ ".join(seg_list)) # 默认模式

    seg_list = jieba.cut("他来到了网易杭研大厦")

    print(", ".join(seg_list))

    seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造") # 搜索引擎模式

    print(", ".join(seg_list))

    ```

    Output:

    [Full Mode]: 我/ 来到/ 北京/ 清华/ 清华大学/ 华大/ 大学

    [Accurate Mode]: 我/ 来到/ 北京/ 清华大学

    [Unknown Words Recognize] 他, 来到, 了, 网易, 杭研, 大厦 (In this case, "杭研" is not in the dictionary, but is identified by the Viterbi algorithm)

    [Search Engine Mode]: 小明, 硕士, 毕业, 于, 中国, 科学, 学院, 科学院, 中国科学院, 计算, 计算所, 后, 在, 日本, 京都, 大学, 日本京都大学, 深造

    2. Add a custom dictionary

    ----------------------------

    ### Load dictionary

    * Developers can specify their own custom dictionary to be included in the jieba default dictionary. Jieba is able to identify new words, but you can add your own new words can ensure a higher accuracy.

    * Usage: `jieba.load_userdict(file_name)` # file_name is a file-like object or the path of the custom dictionary

    * The dictionary format is the same as that of `dict.txt`: one word per line; each line is divided into three parts separated by a space: word, word frequency, POS tag. If `file_name` is a path or a file opened in binary mode, the dictionary must be UTF-8 encoded.

    * The word frequency and POS tag can be omitted respectively. The word frequency will be filled with a suitable value if omitted.

    **For example:**

    ```

    创新办 3 i

    云计算 5

    凱特琳 nz

    台中

    ```

    * Change a Tokenizer's `tmp_dir` and `cache_file` to specify the path of the cache file, for using on a restricted file system.

    * Example:

    云计算 5

    李小福 2

    创新办 3

    [Before]: 李小福 / 是 / 创新 / 办 / 主任 / 也 / 是 / 云 / 计算 / 方面 / 的 / 专家 /

    [After]: 李小福 / 是 / 创新办 / 主任 / 也 / 是 / 云计算 / 方面 / 的 / 专家 /

    ### Modify dictionary

    * Use `add_word(word, freq=None, tag=None)` and `del_word(word)` to modify the dictionary dynamically in programs.

    * Use `suggest_freq(segment, tune=True)` to adjust the frequency of a single word so that it can (or cannot) be segmented.

    * Note that HMM may affect the final result.

    Example:

    ```pycon

    >>> print('/'.join(jieba.cut('如果放到post中将出错。', HMM=False)))

    如果/放到/post/中将/出错/。

    >>> jieba.suggest_freq(('中', '将'), True)

    494

    >>> print('/'.join(jieba.cut('如果放到post中将出错。', HMM=False)))

    如果/放到/post/中/将/出错/。

    >>> print('/'.join(jieba.cut('「台中」正确应该不会被切开', HMM=False)))

    「/台/中/」/正确/应该/不会/被/切开

    >>> jieba.suggest_freq('台中', True)

    69

    >>> print('/'.join(jieba.cut('「台中」正确应该不会被切开', HMM=False)))

    「/台中/」/正确/应该/不会/被/切开

    ```

    3. Keyword Extraction

    -----------------------

    `import jieba.analyse`

    * `jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())`

    * `sentence`: the text to be extracted

    * `topK`: return how many keywords with the highest TF/IDF weights. The default value is 20

    * `withWeight`: whether return TF/IDF weights with the keywords. The default value is False

    * `allowPOS`: filter words with which POSs are included. Empty for no filtering.

    * `jieba.analyse.TFIDF(idf_path=None)` creates a new TFIDF instance, `idf_path` specifies IDF file path.

    Example (keyword extraction)

    https://github.com/fxsjy/jieba/blob/master/test/extract_tags.py

    Developers can specify their own custom IDF corpus in jieba keyword extraction

    * Usage: `jieba.analyse.set_idf_path(file_name) # file_name is the path for the custom corpus`

    * Custom Corpus Sample:https://github.com/fxsjy/jieba/blob/master/extra_dict/idf.txt.big

    * Sample Code:https://github.com/fxsjy/jieba/blob/master/test/extract_tags_idfpath.py

    Developers can specify their own custom stop words corpus in jieba keyword extraction

    * Usage: `jieba.analyse.set_stop_words(file_name) # file_name is the path for the custom corpus`

    * Custom Corpus Sample:https://github.com/fxsjy/jieba/blob/master/extra_dict/stop_words.txt

    * Sample Code:https://github.com/fxsjy/jieba/blob/master/test/extract_tags_stop_words.py

    There's also a [TextRank](http://web.eecs.umich.edu/~mihalcea/papers/mihalcea.emnlp04.pdf) implementation available.

    Use: `jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v'))`

    Note that it filters POS by default.

    `jieba.analyse.TextRank()` creates a new TextRank instance.

    4. Part of Speech Tagging

    -------------------------

    * `jieba.posseg.POSTokenizer(tokenizer=None)` creates a new customized Tokenizer. `tokenizer` specifies the jieba.Tokenizer to internally use. `jieba.posseg.dt` is the default POSTokenizer.

    * Tags the POS of each word after segmentation, using labels compatible with ictclas.

    * Example:

    ```pycon

    >>> import jieba.posseg as pseg

    >>> words = pseg.cut("我爱北京天安门")

    >>> for w in words:

    ... print('%s %s' % (w.word, w.flag))

    ...

    我 r

    爱 v

    北京 ns

    天安门 ns

    ```

    5. Parallel Processing

    ----------------------

    * Principle: Split target text by line, assign the lines into multiple Python processes, and then merge the results, which is considerably faster.

    * Based on the multiprocessing module of Python.

    * Usage:

    * `jieba.enable_parallel(4)` # Enable parallel processing. The parameter is the number of processes.

    * `jieba.disable_parallel()` # Disable parallel processing.

    * Example:

    https://github.com/fxsjy/jieba/blob/master/test/parallel/test_file.py

    * Result: On a four-core 3.4GHz Linux machine, do accurate word segmentation on Complete Works of Jin Yong, and the speed reaches 1MB/s, which is 3.3 times faster than the single-process version.

    * **Note** that parallel processing supports only default tokenizers, `jieba.dt` and `jieba.posseg.dt`.

    6. Tokenize: return words with position

    ----------------------------------------

    * The input must be unicode

    * Default mode

    ```python

    result = jieba.tokenize(u'永和服装饰品有限公司')

    for tk in result:

    print("word %s start: %d end:%d" % (tk[0],tk[1],tk[2]))

    ```

    ```

    word 永和 start: 0 end:2

    word 服装 start: 2 end:4

    word 饰品 start: 4 end:6

    word 有限公司 start: 6 end:10

    ```

    * Search mode

    ```python

    result = jieba.tokenize(u'永和服装饰品有限公司',mode='search')

    for tk in result:

    print("word %s start: %d end:%d" % (tk[0],tk[1],tk[2]))

    ```

    ```

    word 永和 start: 0 end:2

    word 服装 start: 2 end:4

    word 饰品 start: 4 end:6

    word 有限 start: 6 end:8

    word 公司 start: 8 end:10

    word 有限公司 start: 6 end:10

    ```

    7. ChineseAnalyzer for Whoosh

    -------------------------------

    * `from jieba.analyse import ChineseAnalyzer`

    * Example: https://github.com/fxsjy/jieba/blob/master/test/test_whoosh.py

    8. Command Line Interface

    --------------------------------

    $> python -m jieba --help

    Jieba command line interface.

    positional arguments:

    filename input file

    optional arguments:

    -h, --help show this help message and exit

    -d [DELIM], --delimiter [DELIM]

    use DELIM instead of ' / ' for word delimiter; or a

    space if it is used without DELIM

    -p [DELIM], --pos [DELIM]

    enable POS tagging; if DELIM is specified, use DELIM

    instead of '_' for POS delimiter

    -D DICT, --dict DICT use DICT as dictionary

    -u USER_DICT, --user-dict USER_DICT

    use USER_DICT together with the default dictionary or

    DICT (if specified)

    -a, --cut-all full pattern cutting (ignored with POS tagging)

    -n, --no-hmm don't use the Hidden Markov Model

    -q, --quiet don't print loading messages to stderr

    -V, --version show program's version number and exit

    If no filename specified, use STDIN instead.

    Initialization

    ---------------

    By default, Jieba don't build the prefix dictionary unless it's necessary. This takes 1-3 seconds, after which it is not initialized again. If you want to initialize Jieba manually, you can call:

    import jieba

    jieba.initialize() # (optional)

    You can also specify the dictionary (not supported before version 0.28) :

    jieba.set_dictionary('data/dict.txt.big')

    Using Other Dictionaries

    ===========================

    It is possible to use your own dictionary with Jieba, and there are also two dictionaries ready for download:

    1. A smaller dictionary for a smaller memory footprint:

    https://github.com/fxsjy/jieba/raw/master/extra_dict/dict.txt.small

    2. There is also a bigger dictionary that has better support for traditional Chinese (繁體):

    https://github.com/fxsjy/jieba/raw/master/extra_dict/dict.txt.big

    By default, an in-between dictionary is used, called `dict.txt` and included in the distribution.

    In either case, download the file you want, and then call `jieba.set_dictionary('data/dict.txt.big')` or just replace the existing `dict.txt`.

    Segmentation speed

    =========

    * 1.5 MB / Second in Full Mode

    * 400 KB / Second in Default Mode

    * Test Env: Intel(R) Core(TM) i7-2600 CPU @ 3.4GHz;《围城》.txt

    展开全文
  • jieba库,它是Python中一个重要的第三方中文分词函数库。1.jieba的下载由于jieba是...(注:可能有些pip版本低,不能下载jieba库,需要手动升级pip至19.0.3的版本,在安装jieba库)当你再次输入“pip install jieba...

    jieba库,它是Python中一个重要的第三方中文分词函数库。

    1.jieba的下载

    由于jieba是一个第三方函数库,所以需要另外下载。电脑搜索“cmd”打开“命令提示符”,然后输入“pip install jieba”,稍微等等就下载成功。

    (注:可能有些pip版本低,不能下载jieba库,需要手动升级pip至19.0.3的版本,在安装jieba库)

    当你再次输入“pip install jieba”,显示如图,jieba库就下载成功。

    1622500-20190406205636122-1022860539.png

    2.jieba库的3种分词模式

    精确模式:将句子最精确地切开,适合文本分析。

    例:

    1622500-20190406215835707-2138054594.png

    全模式:把句子中所有可以成词的词语都扫描出来,速度非常快,但是不能消除歧义。

    例:(“国是”,黑人问号)

    1622500-20190406220928330-999024190.png

    搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

    例:(没什么不同,可能我还没发现它的用处)

    1622500-20190406221608264-160382315.png

    3.jieba应用

    我选取了哈姆雷特(https://en.wikipedia.org/wiki/Hamlet#Act_I)的一小片段,txt形式存放在我的一个文件夹里,对它进行分词,输入代码:

    defget_text():

    txt= open("D://加油鸭~//hamlet.txt", "r",encoding='UTF-8').read()

    txt=txt.lower()for ch in '!"#$%&()*+,-./:;<=>?@[\]^_"{|}~':

    txt= txt.replace(ch, " ") #将文本中特殊字符替换为空格

    returntxt

    hamletTxt= get_text() #打开并读取文件

    words = hamletTxt.split() #对字符串进行分割,获得单词列表

    counts ={}for word inwords:if len(word) == 1:continue

    else:

    counts[word]= counts.get(word, 0) + 1 #分词计算

    items=list(counts.items())

    items.sort(key=lambda x: x[1], reverse=True)for i in range(10):

    word, count=items[i]print("{0:<10}{1:>5}".format(word,count))

    得到结果,如图:

    1622500-20190406222601110-1648681566.png

    最后,我们还可以做词云图,这个呢我下次再给大家分享吧,再见~

    展开全文
  • 一、安装环境window + python二、安装方式在电脑命令符(cmd)中直接写进下面的语句:pip install jieba 即可三、jieba库分词的基本原理1、利用中文词库,分析汉字与汉字之间的关联几率2、还有分析汉字词组的关联...

    jieba库作为python中的第三方库,在平时是非常实用的,例如一些网站就是利用jieba库的中文分词搜索关键词进行工作。

    一、安装环境

    window + python

    二、安装方式

    在电脑命令符(cmd)中直接写进下面的语句:pip install jieba 即可

    三、jieba库分词的基本原理

    1、利用中文词库,分析汉字与汉字之间的关联几率

    2、还有分析汉字词组的关联几率

    3、还可以根据用户自定义的词组进行分析

    四、jieba库三种模式和对应的三个函数

    精确模式 : 把文本精确的切分开,不存在冗余单词 (就是切分开之后一个不剩的精确组合)

    全模式 : 把文本中所有可能的词语都扫描出来,有冗余

    即: 可能有一个文本,可以从不同的角度来切分,变成不同的词语。在全模式下把不同的词语都挖掘出来

    搜索引擎模式:在精确模式基础上,对长词语再次切分

    函数

    对应模式

    lcut(s)

    精确模式,没有多余

    lcut(s,cut_all=Ture)

    全模式,有多余,长词组

    lcut_for_search(s)

    搜索引擎模式,有多余,长词组

    例如:

    1622797-20190601103948925-1234587579.png

    1622797-20190601150851869-1862905310.png

    以上就是jieba库的一些基本的知识。

    五、jieba库词频统计实例

    利用jieba库找出一篇文章中的关键词

    1、先把文章存为记事本的txt文件

    2、利用结巴库

    代码如下:

    1 importjieba2 txt = open("jiebatxt.txt","r", encoding = 'GBK').read() #读取已存好的txt文档

    3 words = jieba.lcut(txt) #进行分词

    4 counts ={}5 for word inwords:6 if len(word)== 1: #去掉标点字符和其它单字符

    7 continue

    8 else:9 counts[word] = counts.get(word, 0) + 1 #计数

    10 items = list(counts.items()) #把对象对象转化为列表形式,利于下面操作

    11

    12 #sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数

    13 #reverse 排序规则,reverse = True 降序, reverse = False 升序(默认)

    14 #key 是用来比较的参数

    15

    16 items.sort(key=lambda x: x[1], reverse =True)17 for i in range(10):18 word, count=items[i]19 print("{0:<10}{1:>5}".format(word, count))

    得出结果:

    1622797-20190601162759318-1058542357.png

    还有一种就是词云图显示,具体请进入下面链接:

    https://www.cnblogs.com/liyanyinng/p/10652472.html

    可以先看效果:

    1622797-20190601173449473-583781991.png

    展开全文
  • 安装成功后输入:python -m pip list,然后按下回车键来看下jieba库是否安装成功。 5 输入:python,按下回车键,进入python解释器。 6 输入代码:import jieba,导入这个库,如果不报错就时安装成功啦。 输入:...

    No module named ‘jieba’
    首先点击桌面左下角的开始图标,然后选择运行。
    还可以win+R唤出运行菜单
    在这里插入图片描述
    1 anaconda安装库
    可以使用conda install -c conda-forge jieba直接安装。
    mac/linux在终端输入指令;Windows在Anaconda Prompt 输入指令。
    在这里插入图片描述
    在这里插入图片描述

    许多论坛中说使用conda install jieba安装,但jieba作为一个第三方库,并不存在于anaconda内置的packages中。

    2以下是python中安装库步骤

    在弹出的窗口中输入cmd,然后点击确定。

    python怎么安装jieba库这个模块

    3

    输入:pip install jieba,然后按下回车键会自动开始安装。(我实际操作中,回车后无反应,按了一下backspace又突然开始下载了,可能是个例吧)
    在这里插入图片描述

    4

    安装成功后输入:python -m pip list,然后按下回车键来看下jieba库是否安装成功。
    在这里插入图片描述

    5

    输入:python,按下回车键,进入python解释器。
    在这里插入图片描述

    6

    输入代码:import jieba,导入这个库,如果不报错就时安装成功啦。

    在这里插入图片描述

    输入:pip install jieba,然后按下回车键会自动开始安装

     |███████████████████████████     | 16.2MB 3.3MB/
     |███████████████████████████     | 16.2MB 3.3MB/
     |███████████████████████████     | 16.2MB 3.3MB/
     |████████████████████████████████| 19.2MB 2
     |████████████████████████████████| 19.2MB 2
     |████████████████████████████████| 19.2MB 2
     |████████████████████████████████| 19.2MB 2
     |████████████████████████████████| 19.2MB 2
    
     |████████████████████████████████| 19.2MB 2
    

    .2MB/s
    Building wheels for collected packages: jieba
    Building wheel for jieba (setup.py) … done
    Created wheel for jieba: filename=jieba-0.42.1-cp37-none-any.whl size=19314483
    sha256=0f4f3549cb2801c9c3c78208ac87fe4d2884a6d8cf01eb53796fe225eb408f7e
    Stored in directory: C:\Users\pc\AppData\Local\pip\Cache\wheels\98\4c\d7\713c0
    d3792b60467da4cf203f7313da907713c8eb6768b5ee8
    Successfully built jieba
    Installing collected packages: jieba
    Successfully installed jieba-0.42.1

    验证结果

    在这里插入图片描述

    https://jingyan.baidu.com/article/9113f81bf6dd546b3214c78a.html

    展开全文
  • python的jieba库安装失败解决办法

    千次阅读 2020-08-30 12:03:26
    python的jieba库安装失败解决办法 通常用的是全自动安装:pip install jieba,也就是说打开cmd直接输入pip install jieba就可以了,但是可能会提示我们:You should consider upgrading via the ‘pip install --...
  • jieba库:优秀的中文分词第三方库-中文文本需要通过分词获得单个的词语-jieba是第三方库,需要额外安装:-pip install jieba 2. jieba分词的原理-利用了一个中文词库,确定汉字之间的关联概率-汉字间概率大的组成...
  • <div><p>根据安装步骤,我是windows 环境,...最后nodejieba报错,请问这怎么解决,试了把目录删掉,重新生成一个新的,再重复步骤,依然是报这个错。 ...
  • 在网上找了半天怎么安装jieba库,没有找到看得懂的安装教程。。。可能是我太小白了。。。就像下面这张图说的,啥全自动半自动啊。。看不懂,当然我也是有点基础的,全自动安装里提到里pip,书里也提到过啊,是第三方...
  • 谁知,有道题,不能识别jieba,原来要导入,因为是第三方库,照着书里面的导入方法,有三种,一种是用pip,在命令行里面安装,使用pip - p 可以查看pip常用的自命令,使用pip install ,比如,安装jieba库,pip默认...
  • jieba包是第三方,需要自己去下载安装离线下载jieba包以下两种下载方式可以在本博主上传的资源中下载如有需要,请点击下载安装jieba包全自动安装:打开cmd或者Anaconda Prompt,输入以下代码easy_install jieba或者...
  • 作为我这样的萌新,python代码的第一步是:#coding=utf-8环境:python3.5+jieba0.39一、jieba安装方法:方法1:使用conda安装 conda install jieba(首先使用conda search jieba查看远程仓库有没有jieba资源,有的...
  • 2.Python3.7(已安装jieba库) 步骤: 1.先将准备好的文件放入指定位置 2.将代码打入IDLE 3.运行检测 上图即为运行成功的结果 (p.s.Python3.5之后的版本是默认安装jieba库的) 怎么样,快试试吧 ...
  • 1.首先自己在pycharm中安装jieba库 ![图片说明](https://img-ask.csdn.net/upload/201906/10/1560173916_79033.jpg) 2.然后在运行程序过程中出了name 'jieba' is not defined的问题 ![图片说明]...
  • 工欲善其事,必先利其器用Python进行数据分析需要安装的较为重要和常用的第三方扩展有:Numpy、Pandas、SciPy、Matplotlib。我不想模糊主线,所以这一节就讲Pandas的安装,待后续课程需要其他包配合时,我再对用到...
  • image.pngjieba“结巴”中文分词:做最好的 Python 中文分词组件“Jieba” (Chinese for “to stutter”) Chinese text segmentation: built to be the best Python Chinese word segmentation module.支持三种分词...
  • 选择Python语言,除了简单易用,就是Python有许多功能强大的,这些的管理和安装很讨厌,对我这样的新手太不友好了。Anaconda能帮我搞定,装完Anaconda,Python以及一些用于科学计算的都一步到位了,可以直接...
  • 词云的生成使用wordcloud 生成词云安装wordcloudpip install wordcloud调用wordcloud类,生成词云对象词云格式:WordCloud().genrate.to_file()from wordcloud import WordCloudtxt = """开头的水下长对决戏可算...
  • 这里学习 Pyinstaller库,jieba库,worldcloud库 pip:一种安装包管理工具 怎么查找pip是否安装成功? cmd—输入pip(若返回信息)则代表pip工具安装成功 pip<command>[option(可选)] pip-h 命令帮助...
  • 这里学习 Pyinstaller库,jieba库,worldcloud库 pip:一种安装包管理工具 怎么查找pip是否安装成功? cmd—输入pip(若返回信息)则代表pip工具安装成功 pip<command>[option(可选)] pip-h 命令帮助信息 ...
  • 环境:win8+64位,python3.5可以在cmd...另一种是先在下面这网址下载一些的*.whl文件,记着文件下载的路径,然后输:pip install 路径。 注意:别下载错了版本。怎么选呢:我python3.5的就选了cp3,64位系统就选了ad
  • python 安装包无法安装系列解决方法

    千次阅读 热门讨论 2018-06-12 17:28:47
    最近学习python,前面用dos窗口命令安装一些库文件,pyinsatller,jieba库都可以,后来安装wordcloud,怎么安装都不行,报一堆错误,缺少文件啊,或者找不到没有文件。 (1)直接上网址手动下载库文件:...
  • 对于行研报告、咨询报告以及路演 ppt 而言,图表“颜值”有着至关重要的作用。多次行研实习的我,别的本领没学会,对排版和...本文目录安装jieba分词普通词云特定形状型特定形状和颜色型 安装 本文用到的jieba.
  • 提示:安装后初次使用会下载词向量文件,下载速度取决于网络情况。 #118 词向量文件一直下载不下来?可尝试按下述方法设置国内的词向量备份地址: export SYNONYMS_WORD2VEC_BIN_URL_ZH_...
  • 第零步:介绍 终于弄明白了gensim.word2vec怎么玩,说到底word2vec就是用共现矩阵来判断两个...需要的有 gensim,jieba 使用pip安装即可。 第一步:分词 人民的名义下载地址:http://files.cnblogs.com/files/pina
  • from scipy.misc import imread出现错误

    千次阅读 2019-05-14 17:00:46
    在导入scipy.misc时,由于需要安装很多并存的第三方就不多说了,这里告诉大家安装之后还是导入错误怎么解决的。 这是代码 import jieba import wordcloud from scipy.misc import imread 这是错误提...
  • 怎么用python文件实现中文文本分词我之前在GitHub上看到一个中文分词的扩展,你可以去找下叫结巴分词,名叫jieba,国人写的,里面还有例子。你可以安装使用下有用python做过中文分词全文索引的吗...
  • 提示:安装后初次使用会下载词向量文件,下载速度取决于网络情况。 Node.js 用户可以使用 node-synonyms了。 npm install node-synonyms 本文档的配置和接口说明面向 python 工具包, node 版本查看项目。 Usage ...

空空如也

空空如也

1 2
收藏数 28
精华内容 11
关键字:

jieba库怎么安装