python bindings of cppjieba
Project description
cppjieba-py
cppjieba-py 是 cppjieba的 Python 封装。
由于只是对cppjieba的接口进行的封装,所以执行效率上非常接近于原cppjieba。
项目主要分为两个部分libcppjieba 为 cppjieba 的 python extension,
cppjieba_py 为使开发者平滑过渡到使用cppjieba-py而作的 python package。
具体见example.py。
区别
- 原jieba的
.cut
族接口基本都由python的iter()
函数包裹list结果来实现。 - 原jieba的
.set_*
方法基本都由class传入初始化的参数来完成。 .del_word
和.suggest_freq
cppjieba没提供。POSTokenizer.lcut
在Tokenizer.tag
下, 唯一一个只提供了list返回类型的接口。
安装
-
pypi
pip install cppjieba-py
或者你设置的安装源并未收录本项目
pip install -i https://pypi.org/simple/ cppjieba-py
-
从发行包安装
see releasespip install https://github.com/bung87/cppjieba-py/files/<xxxxxxx>/cppjieba_py-<x.x.x>.tar.gz
-
从源代码安装
$ git clone --recursive https://github.com/bung87/cppjieba-py $ python setup.py install
使用
下面是一个使用 cppjieba-py 进行分词的例子
# -*- coding: utf-8 -*-
import cppjieba_py as jieba
# or use defualt Tokenizer: jieba.cut
jieba_instance = Tokenizer()
seg_list = jieba_instance.cut("我来到北京清华大学",cut_all = True)
print("Full Mode: " + "/ ".join(seg_list)) # 全模式
seg_list = jieba_instance.cut("他来到了网易杭研大厦") # 默认是精确模式
print(", ".join(seg_list))
seg_list = jieba_instance.cut_for_search(
"小明硕士毕业于中国科学院计算所,后在日本京都大学深造") # 搜索引擎模式
print(", ".join(seg_list))
for more: example.py , tests
性能
测试方案:先按行读取文本围城到一个数组里,然后循环对围城每行文字作为一个句子进行分词。因为只对围城这本书分词一遍太快了,容易误差。 所以循环对围城这本书分词50次。基本上每次分词耗时都很稳定。 分词算法都是采用【精确模式】。
lcut HMM=False
方案 | 速度 |
---|---|
cppjieba-py | 10.642102 |
jieba-fast==0.51 | 26.129298 |
jieba==0.39 | 50.623866 |
lcut HMM=True
方案 | 速度 |
---|---|
cppjieba-py | 13.139232 |
jieba-fast==0.51 | 34.574907 |
jieba==0.39 | 1:26.756226 |
posseg.lcut
方案 | 速度 |
---|---|
cppjieba-py | 20.382905 |
jieba==0.39 | 1:19.411649 |
Test
pip install ".[test]"
nosetests -c nose.cfg
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for cppjieba_py-0.0.12-py3.5-macosx-10.14-x86_64.egg
Algorithm | Hash digest | |
---|---|---|
SHA256 | 095a542857f51cf36fc86e699efe54bcf91f29e7cfe76c9c4dcddb3c367192d1 |
|
MD5 | 991f8a5f482b7506dac3e158d33fb6d8 |
|
BLAKE2b-256 | c422140b4d00b8a9cd0e5b8811b72f294dc20fa49c67531733dee51d367b4520 |
Hashes for cppjieba_py-0.0.12-cp35-cp35m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e5fde199561917668951153afe4866962b4765c60e092813ac174798fd91fd0d |
|
MD5 | e9935ca0063237880e32548650635f59 |
|
BLAKE2b-256 | a803c1da342ff9483dceda74c6ecc09d5c2a73d0e1cd8d1da1e46d630508a14a |