cppjieba_rb 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/cppjieba/.gitignore +17 -0
- data/ext/cppjieba/.travis.yml +21 -0
- data/ext/cppjieba/CMakeLists.txt +28 -0
- data/ext/cppjieba/ChangeLog.md +249 -0
- data/ext/cppjieba/README.md +289 -0
- data/ext/cppjieba/README_EN.md +115 -0
- data/ext/cppjieba/appveyor.yml +32 -0
- data/ext/cppjieba/deps/CMakeLists.txt +1 -0
- data/ext/cppjieba/deps/gtest/CMakeLists.txt +5 -0
- data/ext/cppjieba/deps/gtest/include/gtest/gtest-death-test.h +283 -0
- data/ext/cppjieba/deps/gtest/include/gtest/gtest-message.h +230 -0
- data/ext/cppjieba/deps/gtest/include/gtest/gtest-param-test.h +1421 -0
- data/ext/cppjieba/deps/gtest/include/gtest/gtest-param-test.h.pump +487 -0
- data/ext/cppjieba/deps/gtest/include/gtest/gtest-printers.h +796 -0
- data/ext/cppjieba/deps/gtest/include/gtest/gtest-spi.h +232 -0
- data/ext/cppjieba/deps/gtest/include/gtest/gtest-test-part.h +176 -0
- data/ext/cppjieba/deps/gtest/include/gtest/gtest-typed-test.h +259 -0
- data/ext/cppjieba/deps/gtest/include/gtest/gtest.h +2155 -0
- data/ext/cppjieba/deps/gtest/include/gtest/gtest_pred_impl.h +358 -0
- data/ext/cppjieba/deps/gtest/include/gtest/gtest_prod.h +58 -0
- data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-death-test-internal.h +308 -0
- data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-filepath.h +210 -0
- data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-internal.h +1226 -0
- data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-linked_ptr.h +233 -0
- data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-param-util-generated.h +4822 -0
- data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-param-util-generated.h.pump +301 -0
- data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-param-util.h +619 -0
- data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-port.h +1788 -0
- data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-string.h +350 -0
- data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-tuple.h +968 -0
- data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-tuple.h.pump +336 -0
- data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-type-util.h +3330 -0
- data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-type-util.h.pump +296 -0
- data/ext/cppjieba/deps/gtest/src/.deps/.dirstamp +0 -0
- data/ext/cppjieba/deps/gtest/src/.deps/gtest-all.Plo +681 -0
- data/ext/cppjieba/deps/gtest/src/.deps/gtest_main.Plo +509 -0
- data/ext/cppjieba/deps/gtest/src/.dirstamp +0 -0
- data/ext/cppjieba/deps/gtest/src/gtest-all.cc +48 -0
- data/ext/cppjieba/deps/gtest/src/gtest-death-test.cc +1234 -0
- data/ext/cppjieba/deps/gtest/src/gtest-filepath.cc +380 -0
- data/ext/cppjieba/deps/gtest/src/gtest-internal-inl.h +1038 -0
- data/ext/cppjieba/deps/gtest/src/gtest-port.cc +746 -0
- data/ext/cppjieba/deps/gtest/src/gtest-printers.cc +356 -0
- data/ext/cppjieba/deps/gtest/src/gtest-test-part.cc +110 -0
- data/ext/cppjieba/deps/gtest/src/gtest-typed-test.cc +110 -0
- data/ext/cppjieba/deps/gtest/src/gtest.cc +4898 -0
- data/ext/cppjieba/deps/gtest/src/gtest_main.cc +39 -0
- data/ext/cppjieba/deps/limonp/ArgvContext.hpp +70 -0
- data/ext/cppjieba/deps/limonp/BlockingQueue.hpp +49 -0
- data/ext/cppjieba/deps/limonp/BoundedBlockingQueue.hpp +67 -0
- data/ext/cppjieba/deps/limonp/BoundedQueue.hpp +65 -0
- data/ext/cppjieba/deps/limonp/Closure.hpp +206 -0
- data/ext/cppjieba/deps/limonp/Colors.hpp +31 -0
- data/ext/cppjieba/deps/limonp/Condition.hpp +38 -0
- data/ext/cppjieba/deps/limonp/Config.hpp +103 -0
- data/ext/cppjieba/deps/limonp/FileLock.hpp +74 -0
- data/ext/cppjieba/deps/limonp/ForcePublic.hpp +7 -0
- data/ext/cppjieba/deps/limonp/LocalVector.hpp +139 -0
- data/ext/cppjieba/deps/limonp/Logging.hpp +76 -0
- data/ext/cppjieba/deps/limonp/Md5.hpp +411 -0
- data/ext/cppjieba/deps/limonp/MutexLock.hpp +51 -0
- data/ext/cppjieba/deps/limonp/NonCopyable.hpp +21 -0
- data/ext/cppjieba/deps/limonp/StdExtension.hpp +157 -0
- data/ext/cppjieba/deps/limonp/StringUtil.hpp +365 -0
- data/ext/cppjieba/deps/limonp/Thread.hpp +44 -0
- data/ext/cppjieba/deps/limonp/ThreadPool.hpp +86 -0
- data/ext/cppjieba/dict/README.md +31 -0
- data/ext/cppjieba/dict/hmm_model.utf8 +34 -0
- data/ext/cppjieba/dict/idf.utf8 +258826 -0
- data/ext/cppjieba/dict/jieba.dict.utf8 +348982 -0
- data/ext/cppjieba/dict/pos_dict/char_state_tab.utf8 +6653 -0
- data/ext/cppjieba/dict/pos_dict/prob_emit.utf8 +166 -0
- data/ext/cppjieba/dict/pos_dict/prob_start.utf8 +259 -0
- data/ext/cppjieba/dict/pos_dict/prob_trans.utf8 +5222 -0
- data/ext/cppjieba/dict/stop_words.utf8 +1534 -0
- data/ext/cppjieba/dict/user.dict.utf8 +4 -0
- data/ext/cppjieba/include/cppjieba/DictTrie.hpp +277 -0
- data/ext/cppjieba/include/cppjieba/FullSegment.hpp +93 -0
- data/ext/cppjieba/include/cppjieba/HMMModel.hpp +129 -0
- data/ext/cppjieba/include/cppjieba/HMMSegment.hpp +190 -0
- data/ext/cppjieba/include/cppjieba/Jieba.hpp +130 -0
- data/ext/cppjieba/include/cppjieba/KeywordExtractor.hpp +153 -0
- data/ext/cppjieba/include/cppjieba/MPSegment.hpp +137 -0
- data/ext/cppjieba/include/cppjieba/MixSegment.hpp +109 -0
- data/ext/cppjieba/include/cppjieba/PosTagger.hpp +77 -0
- data/ext/cppjieba/include/cppjieba/PreFilter.hpp +54 -0
- data/ext/cppjieba/include/cppjieba/QuerySegment.hpp +89 -0
- data/ext/cppjieba/include/cppjieba/SegmentBase.hpp +46 -0
- data/ext/cppjieba/include/cppjieba/SegmentTagged.hpp +23 -0
- data/ext/cppjieba/include/cppjieba/TextRankExtractor.hpp +190 -0
- data/ext/cppjieba/include/cppjieba/Trie.hpp +174 -0
- data/ext/cppjieba/include/cppjieba/Unicode.hpp +227 -0
- data/ext/cppjieba/test/CMakeLists.txt +5 -0
- data/ext/cppjieba/test/demo.cpp +80 -0
- data/ext/cppjieba/test/load_test.cpp +54 -0
- data/ext/cppjieba/test/testdata/curl.res +1 -0
- data/ext/cppjieba/test/testdata/extra_dict/jieba.dict.small.utf8 +109750 -0
- data/ext/cppjieba/test/testdata/gbk_dict/hmm_model.gbk +34 -0
- data/ext/cppjieba/test/testdata/gbk_dict/jieba.dict.gbk +348982 -0
- data/ext/cppjieba/test/testdata/jieba.dict.0.1.utf8 +93 -0
- data/ext/cppjieba/test/testdata/jieba.dict.0.utf8 +93 -0
- data/ext/cppjieba/test/testdata/jieba.dict.1.utf8 +67 -0
- data/ext/cppjieba/test/testdata/jieba.dict.2.utf8 +64 -0
- data/ext/cppjieba/test/testdata/load_test.urls +2 -0
- data/ext/cppjieba/test/testdata/review.100 +100 -0
- data/ext/cppjieba/test/testdata/review.100.res +200 -0
- data/ext/cppjieba/test/testdata/server.conf +19 -0
- data/ext/cppjieba/test/testdata/testlines.gbk +9 -0
- data/ext/cppjieba/test/testdata/testlines.utf8 +8 -0
- data/ext/cppjieba/test/testdata/userdict.2.utf8 +1 -0
- data/ext/cppjieba/test/testdata/userdict.english +2 -0
- data/ext/cppjieba/test/testdata/userdict.utf8 +8 -0
- data/ext/cppjieba/test/testdata/weicheng.utf8 +247 -0
- data/ext/cppjieba/test/unittest/CMakeLists.txt +24 -0
- data/ext/cppjieba/test/unittest/gtest_main.cpp +39 -0
- data/ext/cppjieba/test/unittest/jieba_test.cpp +133 -0
- data/ext/cppjieba/test/unittest/keyword_extractor_test.cpp +79 -0
- data/ext/cppjieba/test/unittest/pos_tagger_test.cpp +41 -0
- data/ext/cppjieba/test/unittest/pre_filter_test.cpp +43 -0
- data/ext/cppjieba/test/unittest/segments_test.cpp +256 -0
- data/ext/cppjieba/test/unittest/textrank_test.cpp +86 -0
- data/ext/cppjieba/test/unittest/trie_test.cpp +177 -0
- data/ext/cppjieba/test/unittest/unicode_test.cpp +43 -0
- data/lib/cppjieba_rb/version.rb +1 -1
- metadata +125 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 74faf109bce12cd386acb5d2ad03ab4fde55a68cdb07a723a5af1f5b2528f3d5
|
|
4
|
+
data.tar.gz: c4a58470ef8e352cad688b9814080c37b332e46a93987e536387a94304ad1383
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 925ba793289f09a922451f6717b18a769080be4ab132a23edb236e4b91760251b67237dc2b6505c1aa39988d60294ff1ac07638c40a46916f6064be2cd71a425
|
|
7
|
+
data.tar.gz: e5f9dfcd2d341dd880bfc9aceee265abf6cf1e1d1a3428f807b1cd810691bab8e24946c974fef1260f89aebf03e82e85e518fd961905fd1150eac3ad6108c7ca
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
language: cpp
|
|
2
|
+
before_install:
|
|
3
|
+
- if [ $TRAVIS_OS_NAME == linux ]; then sudo apt-get install cmake; fi
|
|
4
|
+
script:
|
|
5
|
+
- mkdir build
|
|
6
|
+
- cd build
|
|
7
|
+
- cmake ..
|
|
8
|
+
- make
|
|
9
|
+
- make test
|
|
10
|
+
os:
|
|
11
|
+
- linux
|
|
12
|
+
- osx
|
|
13
|
+
compiler:
|
|
14
|
+
- clang
|
|
15
|
+
- gcc
|
|
16
|
+
notifications:
|
|
17
|
+
recipients:
|
|
18
|
+
- i@yanyiwu.com
|
|
19
|
+
email:
|
|
20
|
+
on_success: change
|
|
21
|
+
on_failure: always
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
PROJECT(CPPJIEBA)
|
|
2
|
+
|
|
3
|
+
CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
|
|
4
|
+
|
|
5
|
+
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/deps
|
|
6
|
+
${PROJECT_SOURCE_DIR}/include)
|
|
7
|
+
|
|
8
|
+
if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
|
9
|
+
set (CMAKE_INSTALL_PREFIX "/usr/local/cppjieba" CACHE PATH "default install path" FORCE )
|
|
10
|
+
endif()
|
|
11
|
+
|
|
12
|
+
ADD_DEFINITIONS(-O3 -Wall -g)
|
|
13
|
+
IF(APPLE) # mac os
|
|
14
|
+
ADD_DEFINITIONS(-std=c++0x)
|
|
15
|
+
endif()
|
|
16
|
+
|
|
17
|
+
# cmake .. -DENC=GBK
|
|
18
|
+
# IF (DEFINED ENC)
|
|
19
|
+
# ADD_DEFINITIONS(-DCPPJIEBA_${ENC})
|
|
20
|
+
# ENDIF()
|
|
21
|
+
|
|
22
|
+
ADD_SUBDIRECTORY(deps)
|
|
23
|
+
ADD_SUBDIRECTORY(test)
|
|
24
|
+
|
|
25
|
+
ENABLE_TESTING()
|
|
26
|
+
ADD_TEST(NAME ./test/test.run COMMAND ./test/test.run)
|
|
27
|
+
ADD_TEST(NAME ./load_test COMMAND ./load_test)
|
|
28
|
+
ADD_TEST(NAME ./demo COMMAND ./demo)
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
# CppJieba ChangeLog
|
|
2
|
+
|
|
3
|
+
## v5.0.3
|
|
4
|
+
|
|
5
|
+
+ Upgrade [limonp](https://github.com/yanyiwu/limonp) -> v0.6.3
|
|
6
|
+
|
|
7
|
+
## v5.0.2
|
|
8
|
+
|
|
9
|
+
+ Upgrade [limonp](https://github.com/yanyiwu/limonp) -> v0.6.1
|
|
10
|
+
|
|
11
|
+
## v5.0.1
|
|
12
|
+
|
|
13
|
+
+ Make Compiler Happier.
|
|
14
|
+
+ Add PHP, DLang Links.
|
|
15
|
+
|
|
16
|
+
## v5.0.0
|
|
17
|
+
|
|
18
|
+
+ Notice(**api changed**) : Jieba class 3 arguments -> 5 arguments, and use KeywordExtractor in Jieba
|
|
19
|
+
|
|
20
|
+
## v4.8.1
|
|
21
|
+
|
|
22
|
+
+ add TextRankExtractor by [@questionfish] in [pull request 65](https://github.com/yanyiwu/cppjieba/pull/65)
|
|
23
|
+
+ add Jieba::ResetSeparators api for some special situation, for example in [issue67](https://github.com/yanyiwu/cppjieba/issues/67)
|
|
24
|
+
+ fix [issue70](https://github.com/yanyiwu/cppjieba/issues/70)
|
|
25
|
+
+ support (word, freq, tag) format in user_dict, see details in [pr74](https://github.com/yanyiwu/cppjieba/pull/74)
|
|
26
|
+
|
|
27
|
+
## v4.8.0
|
|
28
|
+
|
|
29
|
+
+ rewrite QuerySegment, make `Jieba::CutForSearch` behaves the same as [jieba] `cut_for_search` api
|
|
30
|
+
+ remove Jieba::SetQuerySegmentThreshold
|
|
31
|
+
|
|
32
|
+
## v4.7.0
|
|
33
|
+
|
|
34
|
+
api changes:
|
|
35
|
+
|
|
36
|
+
+ override Cut functions, add location information into Word results;
|
|
37
|
+
+ remove LevelSegment;
|
|
38
|
+
+ remove Jieba::Locate;
|
|
39
|
+
|
|
40
|
+
upgrade:
|
|
41
|
+
|
|
42
|
+
+ limonp -> v0.6.1
|
|
43
|
+
|
|
44
|
+
## v4.6.0
|
|
45
|
+
|
|
46
|
+
+ Change Jieba::Locate(deprecated) to be static function.
|
|
47
|
+
+ Change the return value of KeywordExtractor::Extract from bool to void.
|
|
48
|
+
+ Add KeywordExtractor::Word and add more overrided KeywordExtractor::Extract
|
|
49
|
+
|
|
50
|
+
## v4.5.3
|
|
51
|
+
|
|
52
|
+
+ Upgrade limonp to v0.6.0
|
|
53
|
+
|
|
54
|
+
## v4.5.2
|
|
55
|
+
|
|
56
|
+
+ Upgrade limonp to v0.5.6 to fix hidden trouble.
|
|
57
|
+
|
|
58
|
+
## v4.5.1
|
|
59
|
+
|
|
60
|
+
+ Upgrade limonp to v0.5.5 to solve macro name conficts in some special case.
|
|
61
|
+
|
|
62
|
+
## v4.5.0
|
|
63
|
+
|
|
64
|
+
+ 在 Trie 中去除之前糟糕的针对 uint16 优化的用数组代替 map 的设计,
|
|
65
|
+
该设计的主要问题是前提 unicode 每个字符必须是 uint16 ,则无法更全面得支持 unicode 多国字符。
|
|
66
|
+
+ Rune 类型从 16bit 更改为 32bit ,支持更多 Unicode 字符,包括一些罕见汉字。
|
|
67
|
+
|
|
68
|
+
## v4.4.1
|
|
69
|
+
|
|
70
|
+
+ 使用 valgrind 检查内存泄露的问题,定位出一个HMM模型初始化的问题导致内存泄露的bug,不过此内存泄露不是致命问题,
|
|
71
|
+
因为只会在词典载入的时候发生,而词典载入通常情况下只会被运行一次,故不会导致严重问题。
|
|
72
|
+
+ 感谢 [qinwf] 帮我发现这个bug,非常感谢。
|
|
73
|
+
|
|
74
|
+
## v4.4.0
|
|
75
|
+
|
|
76
|
+
+ 加代码容易删代码难,思索良久,还是决定把 Server 功能的源码剥离出这个项目。
|
|
77
|
+
+ 让 [cppjieba] 回到当年情窦未开时清纯的感觉,删除那些无关紧要的server代码,让整个项目轻装上阵,专注分词的核心代码。
|
|
78
|
+
+ By the way, 之前的 server 相关的代码,如果你真的需要它,就去新的项目仓库 [cppjieba-server](https://github.com/yanyiwu/cppjieba-server) 找它们。
|
|
79
|
+
|
|
80
|
+
## v4.3.3
|
|
81
|
+
|
|
82
|
+
+ Yet Another Incompatibility Problem Repair: Upgrade [limonp] to version v0.5.3, fix incompatibility problem in Windows
|
|
83
|
+
|
|
84
|
+
## v4.3.2
|
|
85
|
+
|
|
86
|
+
+ Upgrade [limonp] to version v0.5.2, fix incompatibility problem in Windows
|
|
87
|
+
|
|
88
|
+
## v4.3.1
|
|
89
|
+
|
|
90
|
+
+ 重载 KeywordExtractor 的构造函数,可以传入 Jieba 进行字典和模型的构造。
|
|
91
|
+
|
|
92
|
+
## v4.3.0
|
|
93
|
+
|
|
94
|
+
源码目录布局调整:
|
|
95
|
+
|
|
96
|
+
1. src/ -> include/cppjieba/
|
|
97
|
+
2. src/limonp/ -> deps/limonp/
|
|
98
|
+
3. server/husky -> deps/husky/
|
|
99
|
+
4. test/unittest/gtest -> deps/gtest
|
|
100
|
+
|
|
101
|
+
依赖库升级:
|
|
102
|
+
|
|
103
|
+
1. [limonp] to version v0.5.1
|
|
104
|
+
2. [husky] to version v0.2.0
|
|
105
|
+
|
|
106
|
+
## v4.2.1
|
|
107
|
+
|
|
108
|
+
1. Upgrade [limonp] to version v0.4.1, [husky] to version v0.2.0
|
|
109
|
+
|
|
110
|
+
## v4.2.0
|
|
111
|
+
|
|
112
|
+
1. 修复[issue50]提到的多词典分隔符在Windows环境下存在的问题,从':'修改成'|'或';'。
|
|
113
|
+
|
|
114
|
+
## v4.1.2
|
|
115
|
+
|
|
116
|
+
1. 新增 Jieba::Locate 函数接口,作为计算分词结果的词语位置信息,在某些场景下有用,比如搜索结果高亮之类的。
|
|
117
|
+
|
|
118
|
+
## v4.1.1
|
|
119
|
+
|
|
120
|
+
1. 在 class Jieba 中新增词性标注的接口函数 Jieba::Tag
|
|
121
|
+
|
|
122
|
+
## v4.1.0
|
|
123
|
+
|
|
124
|
+
1. QuerySegment切词时加一层判断,当长词满足IsAllAscii(比如英文单词)时,不进行细粒度分词。
|
|
125
|
+
2. QuerySegment新增SetMaxWordLen和GetMaxWordLen接口,用来设置二次分词条件被触发的词长阈值。
|
|
126
|
+
3. Jieba新增SetQuerySegmentThreshold设置CutForSearch函数的词长阈值。
|
|
127
|
+
|
|
128
|
+
## v4.0.0
|
|
129
|
+
|
|
130
|
+
1. 支持多个userdict载入,多词典路径用英文冒号(:)作为分隔符,就当是向环境变量PATH致敬,哈哈。
|
|
131
|
+
2. userdict是不带权重的,之前对于新的userword默认设置词频权重为最大值,现已支持可配置,默认使用中位值。
|
|
132
|
+
3. 【兼容性预警】修改一些代码风格,比如命名空间小写化,从CppJieba变成cppjieba。
|
|
133
|
+
4. 【兼容性预警】弃用Application.hpp, 取而代之使用Jieba.hpp ,接口也进行了大幅修改,函数风格更统一,和python版本的Jieba分词更一致。
|
|
134
|
+
|
|
135
|
+
## v3.2.1
|
|
136
|
+
|
|
137
|
+
1. 修复 Jieba.hpp 头文件保护写错导致的 bug。
|
|
138
|
+
|
|
139
|
+
## v3.2.0
|
|
140
|
+
|
|
141
|
+
1. 使用工程上比较 tricky 的 Trie树优化办法。废弃了之前的 `Aho-Corasick-Automation` 实现,可读性更好,性能更高。
|
|
142
|
+
2. 新增层次分词器: LevelSegment 。
|
|
143
|
+
3. 增加MPSegment的细粒度分词功能。
|
|
144
|
+
4. 增加 class Jieba ,提供可读性更好的接口。
|
|
145
|
+
5. 放弃了统一接口ISegment,因为统一的接口限制了分词方式的灵活性,限制了一些功能的增加。
|
|
146
|
+
6. 增加默认开启新词发现功能的可选参数hmm,让MixSegment和QuerySegment都支持开关新词发现功能。
|
|
147
|
+
|
|
148
|
+
## v3.1.0
|
|
149
|
+
|
|
150
|
+
1. 新增可动态增加词典的API: insertUserWord
|
|
151
|
+
2. cut函数增加默认参数,默认使用Mix切词算法。关于切词算法详见README.md
|
|
152
|
+
|
|
153
|
+
## v3.0.1
|
|
154
|
+
|
|
155
|
+
1. 提升兼容性,修复在某些特定环境下的编译错误问题。
|
|
156
|
+
|
|
157
|
+
## v3.0.0
|
|
158
|
+
|
|
159
|
+
1. 使得 QuerySegment 支持自定义词典(可选参数)。
|
|
160
|
+
2. 使得 KeywordExtractor 支持自定义词典(可选参数)。
|
|
161
|
+
3. 修改 Code Style ,参照 google code style 。
|
|
162
|
+
4. 增加更详细的错误日志,在初始化过程中合理使用LogFatal。
|
|
163
|
+
5. 增加 Application 这个类,整合了所有CppJieba的功能进去,以后用户只需要使用这个类即可。
|
|
164
|
+
6. 修改 cjserver 服务,可以通过http参数使用不同切词算法进行切词。
|
|
165
|
+
7. 修改 make install 的安装目录,统一安装到同一个目录 /usr/local/cppjieba 。
|
|
166
|
+
|
|
167
|
+
## v2.4.4
|
|
168
|
+
|
|
169
|
+
1. 修改两条更细粒度的特殊过滤规则,将连续的数字(包括浮点数)和连续的字母单独切分出来(而不会混在一起)。
|
|
170
|
+
2. 修改最大概率法时动态规划过程需要使用的 DAG 数据结构(同时也修改 Trie 的 DAG 查询函数),提高分词速度 8% 。
|
|
171
|
+
3. 使用了 `Aho-Corasick-Automation` 算法提速 Trie 查找的过程等优化,提升性能。
|
|
172
|
+
4. 增加词性标注的两条特殊规则。
|
|
173
|
+
|
|
174
|
+
## v2.4.3
|
|
175
|
+
|
|
176
|
+
1. 更新 [husky] 服务代码,新 [husky] 为基于线程池的服务器简易框架。并且修复当 HTTP POST 请求时 body 过长数据可能丢失的问题。
|
|
177
|
+
2. 修改 PosTagger 的参数结构,删除暂时无用的参数。并添加使用自定义字典的参数,也就是支持 **自定义词性**。
|
|
178
|
+
3. 更好的支持 `mac osx` (原谅作者如此屌丝,这么晚才买 `mac` )。
|
|
179
|
+
4. 支持 `Docker` ,具体请见 `Dockerfile` 。
|
|
180
|
+
|
|
181
|
+
## v2.4.2
|
|
182
|
+
|
|
183
|
+
1. 适当使用 `vector`, 的基础上,使用`limonp/LocalVector.hpp`作为`Unicode`的类型等优化,约提高性能 `30%`。
|
|
184
|
+
2. 使 `cjserver` 支持用户自定义词典,通过在 `conf/server.conf` 里面配置 `user_dict_path` 来实现。
|
|
185
|
+
3. 修复 `MPSegment` 切词时,当句子中含有特殊字符时,切词结果不完整的问题。
|
|
186
|
+
4. 修改 `FullSegment` 减少内存使用。
|
|
187
|
+
5. 修改 `-std=c++0x` 或者 `-std=c++11` 时编译失败的问题。
|
|
188
|
+
|
|
189
|
+
## v2.4.1
|
|
190
|
+
|
|
191
|
+
1. 完善一些特殊字符和字母串的切词效果。
|
|
192
|
+
2. 提高关键词抽取的速度。
|
|
193
|
+
3. 提供用户自定义词典的接口。
|
|
194
|
+
4. 将server相关的代码独立出来,单独放在`server/`目录下。
|
|
195
|
+
5. 修复用户自定义词典中单字会被MixSegment的新词发现功能给忽略的问题。也就是说,现在的词典是用户词典优先级最高,其次是自带的词典,再其次是新词发现出来的词。
|
|
196
|
+
|
|
197
|
+
## v2.4.0
|
|
198
|
+
|
|
199
|
+
1. 适配更低级版本的`g++`和`cmake`,已在`g++ 4.1.2`和`cmake 2.6`上测试通过。
|
|
200
|
+
2. 修改一些测试用例的文件,减少测试时编译的时间。
|
|
201
|
+
3. 修复`make install`相关的问题。
|
|
202
|
+
4. 增加HTTP服务的POST请求接口。
|
|
203
|
+
5. 拆分`Trie.hpp`成`DictTrie.hpp`和`Trie.hpp`,将trie树这个数据结构抽象出来,并且修复Trie这个类潜在的bug并完善单元测试。
|
|
204
|
+
6. 重写cjserver的启动和停止,新启动和停止方法详见README.md。
|
|
205
|
+
|
|
206
|
+
## v2.3.4
|
|
207
|
+
|
|
208
|
+
1. 修改了设计上的问题,删除了`TrieManager`这个类,以避免造成一些可能的隐患。
|
|
209
|
+
2. 增加`stop_words.utf8`词典,并修改`KeywordExtractor`的初始化函数用以使用此词典。
|
|
210
|
+
3. 优化了`Trie`树相关部分代码结构。
|
|
211
|
+
|
|
212
|
+
## v2.3.3
|
|
213
|
+
|
|
214
|
+
1. 修复因为使用unordered_map导致的在不同机器上结果不一致的问题。
|
|
215
|
+
2. 将部分数据结果从unordered_map改为map,提升了差不多1/6的切词速度。(因为unordered_map虽然查找速度快,但是在范围迭代的效率较低。)
|
|
216
|
+
|
|
217
|
+
## v2.3.2
|
|
218
|
+
|
|
219
|
+
1. 修复单元测试的问题,有些case在x84和x64中结果不一致。
|
|
220
|
+
2. merge进词性标注的简单版本。
|
|
221
|
+
|
|
222
|
+
## v2.3.1
|
|
223
|
+
|
|
224
|
+
1. 修复安装时的服务启动问题(不过安装切词服务只是linux下的一个附加功能,不影响核心代码。)
|
|
225
|
+
|
|
226
|
+
## v2.3.0
|
|
227
|
+
|
|
228
|
+
1. 增加`KeywordExtractor.hpp`来进行关键词抽取。
|
|
229
|
+
2. 使用`gtest`来做单元测试。
|
|
230
|
+
|
|
231
|
+
## v2.2.0
|
|
232
|
+
|
|
233
|
+
1. 性能优化,提升切词速度约6倍。
|
|
234
|
+
2. 其他暂时也想不起来了。
|
|
235
|
+
|
|
236
|
+
## v2.1.1 (v2.1.1之前的统统一起写在 v2.1.1里面了)
|
|
237
|
+
|
|
238
|
+
1. 完成__最大概率分词算法__和__HMM分词算法__,并且将他们结合起来成效果最好的`MixSegment`。
|
|
239
|
+
2. 进行大量的代码重构,将主要的功能性代码都写成了hpp文件。
|
|
240
|
+
3. 使用`cmake`工具来管理项目。
|
|
241
|
+
4. 使用 [limonp]作为工具函数库,比如日志,字符串操作等常用函数。
|
|
242
|
+
5. 使用 [husky] 搭简易分词服务的服务器框架。
|
|
243
|
+
|
|
244
|
+
[limonp]:http://github.com/yanyiwu/limonp.git
|
|
245
|
+
[husky]:http://github.com/yanyiwu/husky.git
|
|
246
|
+
[issue50]:https://github.com/yanyiwu/cppjieba/issues/50
|
|
247
|
+
[qinwf]:https://github.com/yanyiwu/cppjieba/pull/53#issuecomment-176264929
|
|
248
|
+
[jieba]:https://github.com/fxsjy/jieba
|
|
249
|
+
[@questionfish]:https://github.com/questionfish
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
# CppJieba [English](README_EN.md)
|
|
2
|
+
|
|
3
|
+
[](https://travis-ci.org/yanyiwu/cppjieba)
|
|
4
|
+
[](http://yanyiwu.com/)
|
|
5
|
+
[](https://eosflare.io/account/gitdeveloper)
|
|
6
|
+
[](https://github.com/yanyiwu/cppjieba)
|
|
7
|
+
[](http://yanyiwu.com/work/2015/06/14/jieba-series-performance-test.html)
|
|
8
|
+
[](https://github.com/yanyiwu/cppjieba/releases)
|
|
9
|
+
[](http://yanyiwu.mit-license.org)
|
|
10
|
+
[](https://ci.appveyor.com/project/yanyiwu/cppjieba/branch/master)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
[](https://github.com/yanyiwu/cppjieba)
|
|
14
|
+
|
|
15
|
+
## 简介
|
|
16
|
+
|
|
17
|
+
CppJieba是"结巴(Jieba)"中文分词的C++版本
|
|
18
|
+
|
|
19
|
+
## 特性
|
|
20
|
+
|
|
21
|
+
+ 源代码都写进头文件`include/cppjieba/*.hpp`里,`include`即可使用。
|
|
22
|
+
+ 支持`utf8`编码。
|
|
23
|
+
+ 项目自带较为完善的单元测试,核心功能中文分词(utf8)的稳定性接受过线上环境检验。
|
|
24
|
+
+ 支持载自定义用户词典,多路径时支持分隔符'|'或者';'分隔。
|
|
25
|
+
+ 支持 `Linux` , `Mac OSX`, `Windows` 操作系统。
|
|
26
|
+
|
|
27
|
+
## 用法
|
|
28
|
+
|
|
29
|
+
### 依赖软件
|
|
30
|
+
|
|
31
|
+
* `g++ (version >= 4.1 is recommended) or clang++`;
|
|
32
|
+
* `cmake (version >= 2.6 is recommended)`;
|
|
33
|
+
|
|
34
|
+
### 下载和编译
|
|
35
|
+
|
|
36
|
+
```sh
|
|
37
|
+
git clone --depth=10 --branch=master git://github.com/yanyiwu/cppjieba.git
|
|
38
|
+
cd cppjieba
|
|
39
|
+
mkdir build
|
|
40
|
+
cd build
|
|
41
|
+
cmake ..
|
|
42
|
+
make
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
有兴趣的可以跑跑测试(可选):
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
make test
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Demo
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
./demo
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
结果示例:
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
[demo] Cut With HMM
|
|
61
|
+
他/来到/了/网易/杭研/大厦
|
|
62
|
+
[demo] Cut Without HMM
|
|
63
|
+
他/来到/了/网易/杭/研/大厦
|
|
64
|
+
我来到北京清华大学
|
|
65
|
+
[demo] CutAll
|
|
66
|
+
我/来到/北京/清华/清华大学/华大/大学
|
|
67
|
+
小明硕士毕业于中国科学院计算所,后在日本京都大学深造
|
|
68
|
+
[demo] CutForSearch
|
|
69
|
+
小明/硕士/毕业/于/中国/科学/学院/科学院/中国科学院/计算/计算所/,/后/在/日本/京都/大学/日本京都大学/深造
|
|
70
|
+
[demo] Insert User Word
|
|
71
|
+
男默/女泪
|
|
72
|
+
男默女泪
|
|
73
|
+
[demo] CutForSearch Word With Offset
|
|
74
|
+
[{"word": "小明", "offset": 0}, {"word": "硕士", "offset": 6}, {"word": "毕业", "offset": 12}, {"word": "于", "offset": 18}, {"word": "中国", "offset": 21}, {"word": "科学", "offset": 27}, {"word": "学院", "offset": 30}, {"word": "科学院", "offset": 27}, {"word": "中国科学院", "offset": 21}, {"word": "计算", "offset": 36}, {"word": "计算所", "offset": 36}, {"word": ",", "offset": 45}, {"word": "后", "offset": 48}, {"word": "在", "offset": 51}, {"word": "日本", "offset": 54}, {"word": "京都", "offset": 60}, {"word": "大学", "offset": 66}, {"word": "日本京都大学", "offset": 54}, {"word": "深造", "offset": 72}]
|
|
75
|
+
[demo] Tagging
|
|
76
|
+
我是拖拉机学院手扶拖拉机专业的。不用多久,我就会升职加薪,当上CEO,走上人生巅峰。
|
|
77
|
+
[我:r, 是:v, 拖拉机:n, 学院:n, 手扶拖拉机:n, 专业:n, 的:uj, 。:x, 不用:v, 多久:m, ,:x, 我:r, 就:d, 会:v, 升职:v, 加薪:nr, ,:x, 当上:t, CEO:eng, ,:x, 走上:v, 人生:n, 巅峰:n, 。:x]
|
|
78
|
+
[demo] Keyword Extraction
|
|
79
|
+
我是拖拉机学院手扶拖拉机专业的。不用多久,我就会升职加薪,当上CEO,走上人生巅峰。
|
|
80
|
+
[{"word": "CEO", "offset": [93], "weight": 11.7392}, {"word": "升职", "offset": [72], "weight": 10.8562}, {"word": "加薪", "offset": [78], "weight": 10.6426}, {"word": "手扶拖拉机", "offset": [21], "weight": 10.0089}, {"word": "巅峰", "offset": [111], "weight": 9.49396}]
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
详细请看 `test/demo.cpp`.
|
|
84
|
+
|
|
85
|
+
### 分词结果示例
|
|
86
|
+
|
|
87
|
+
**MPSegment**
|
|
88
|
+
|
|
89
|
+
Output:
|
|
90
|
+
```
|
|
91
|
+
我来到北京清华大学
|
|
92
|
+
我/来到/北京/清华大学
|
|
93
|
+
|
|
94
|
+
他来到了网易杭研大厦
|
|
95
|
+
他/来到/了/网易/杭/研/大厦
|
|
96
|
+
|
|
97
|
+
小明硕士毕业于中国科学院计算所,后在日本京都大学深造
|
|
98
|
+
小/明/硕士/毕业/于/中国科学院/计算所/,/后/在/日本京都大学/深造
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**HMMSegment**
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
我来到北京清华大学
|
|
106
|
+
我来/到/北京/清华大学
|
|
107
|
+
|
|
108
|
+
他来到了网易杭研大厦
|
|
109
|
+
他来/到/了/网易/杭/研大厦
|
|
110
|
+
|
|
111
|
+
小明硕士毕业于中国科学院计算所,后在日本京都大学深造
|
|
112
|
+
小明/硕士/毕业于/中国/科学院/计算所/,/后/在/日/本/京/都/大/学/深/造
|
|
113
|
+
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
**MixSegment**
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
我来到北京清华大学
|
|
120
|
+
我/来到/北京/清华大学
|
|
121
|
+
|
|
122
|
+
他来到了网易杭研大厦
|
|
123
|
+
他/来到/了/网易/杭研/大厦
|
|
124
|
+
|
|
125
|
+
小明硕士毕业于中国科学院计算所,后在日本京都大学深造
|
|
126
|
+
小明/硕士/毕业/于/中国科学院/计算所/,/后/在/日本京都大学/深造
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
**FullSegment**
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
我来到北京清华大学
|
|
134
|
+
我/来到/北京/清华/清华大学/华大/大学
|
|
135
|
+
|
|
136
|
+
他来到了网易杭研大厦
|
|
137
|
+
他/来到/了/网易/杭/研/大厦
|
|
138
|
+
|
|
139
|
+
小明硕士毕业于中国科学院计算所,后在日本京都大学深造
|
|
140
|
+
小/明/硕士/毕业/于/中国/中国科学院/科学/科学院/学院/计算/计算所/,/后/在/日本/日本京都大学/京都/京都大学/大学/深造
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
**QuerySegment**
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
我来到北京清华大学
|
|
148
|
+
我/来到/北京/清华/清华大学/华大/大学
|
|
149
|
+
|
|
150
|
+
他来到了网易杭研大厦
|
|
151
|
+
他/来到/了/网易/杭研/大厦
|
|
152
|
+
|
|
153
|
+
小明硕士毕业于中国科学院计算所,后在日本京都大学深造
|
|
154
|
+
小明/硕士/毕业/于/中国/中国科学院/科学/科学院/学院/计算所/,/后/在/中国/中国科学院/科学/科学院/学院/日本/日本京都大学/京都/京都大学/大学/深造
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
以上依次是MP,HMM,Mix三种方法的效果。
|
|
159
|
+
|
|
160
|
+
可以看出效果最好的是Mix,也就是融合MP和HMM的切词算法。即可以准确切出词典已有的词,又可以切出像"杭研"这样的未登录词。
|
|
161
|
+
|
|
162
|
+
Full方法切出所有字典里的词语。
|
|
163
|
+
|
|
164
|
+
Query方法先使用Mix方法切词,对于切出来的较长的词再使用Full方法。
|
|
165
|
+
|
|
166
|
+
### 自定义用户词典
|
|
167
|
+
|
|
168
|
+
自定义词典示例请看`dict/user.dict.utf8`。
|
|
169
|
+
|
|
170
|
+
没有使用自定义用户词典时的结果:
|
|
171
|
+
|
|
172
|
+
```
|
|
173
|
+
令狐冲/是/云/计算/行业/的/专家
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
使用自定义用户词典时的结果:
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
令狐冲/是/云计算/行业/的/专家
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### 关键词抽取
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
我是拖拉机学院手扶拖拉机专业的。不用多久,我就会升职加薪,当上CEO,走上人生巅峰。
|
|
186
|
+
["CEO:11.7392", "升职:10.8562", "加薪:10.6426", "手扶拖拉机:10.0089", "巅峰:9.49396"]
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
详细请见 `test/demo.cpp`.
|
|
190
|
+
|
|
191
|
+
### 词性标注
|
|
192
|
+
|
|
193
|
+
```
|
|
194
|
+
我是蓝翔技工拖拉机学院手扶拖拉机专业的。不用多久,我就会升职加薪,当上总经理,出任CEO,迎娶白富美,走上人生巅峰。
|
|
195
|
+
["我:r", "是:v", "拖拉机:n", "学院:n", "手扶拖拉机:n", "专业:n", "的:uj", "。:x", "不用:v", "多久:m", ",:x", "我:r", "就:d", "会:v", "升职:v", "加薪:nr", ",:x", "当上:t", "CEO:eng", ",:x", "走上:v", "人生:n", "巅峰:n", "。:x"]
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
详细请看 `test/demo.cpp`.
|
|
199
|
+
|
|
200
|
+
支持自定义词性。
|
|
201
|
+
比如在(`dict/user.dict.utf8`)增加一行
|
|
202
|
+
|
|
203
|
+
```
|
|
204
|
+
蓝翔 nz
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
结果如下:
|
|
208
|
+
|
|
209
|
+
```
|
|
210
|
+
["我:r", "是:v", "蓝翔:nz", "技工:n", "拖拉机:n", "学院:n", "手扶拖拉机:n", "专业:n", "的:uj", "。:x", "不用:v", "多久:m", ",:x", "我:r", "就:d", "会:v", "升职:v", "加薪:nr", ",:x", "当:t", "上:f", "总经理:n", ",:x", "出任:v", "CEO:eng", ",:x", "迎娶:v", "白富美:x", ",:x", "走上:v", "人生:n", "巅峰:n", "。:x"]
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
## 其它词典资料分享
|
|
214
|
+
|
|
215
|
+
+ [dict.367W.utf8] iLife(562193561 at qq.com)
|
|
216
|
+
|
|
217
|
+
## 应用
|
|
218
|
+
|
|
219
|
+
+ [GoJieba] go语言版本的结巴中文分词。
|
|
220
|
+
+ [NodeJieba] Node.js 版本的结巴中文分词。
|
|
221
|
+
+ [simhash] 中文文档的的相似度计算
|
|
222
|
+
+ [exjieba] Erlang 版本的结巴中文分词。
|
|
223
|
+
+ [jiebaR] R语言版本的结巴中文分词。
|
|
224
|
+
+ [cjieba] C语言版本的结巴分词。
|
|
225
|
+
+ [jieba_rb] Ruby 版本的结巴分词。
|
|
226
|
+
+ [iosjieba] iOS 版本的结巴分词。
|
|
227
|
+
+ [SqlJieba] MySQL 全文索引的结巴中文分词插件。
|
|
228
|
+
+ [pg_jieba] PostgreSQL 数据库的分词插件。
|
|
229
|
+
+ [simple] SQLite3 FTS5 数据库的分词插件。
|
|
230
|
+
+ [gitbook-plugin-search-pro] 支持中文搜索的 gitbook 插件。
|
|
231
|
+
+ [ngx_http_cppjieba_module] Nginx 分词插件。
|
|
232
|
+
+ [cppjiebapy] 由 [jannson] 开发的供 python 模块调用的项目 [cppjiebapy], 相关讨论 [cppjiebapy_discussion] .
|
|
233
|
+
+ [cppjieba-py] 由 [bung87] 基于 pybind11 封装的 python 模块,使用体验上接近于原jieba。
|
|
234
|
+
+ [KeywordServer] 50行搭建一个中文关键词抽取服务。
|
|
235
|
+
+ [cppjieba-server] CppJieba HTTP 服务器。
|
|
236
|
+
+ [phpjieba] php版本的结巴分词扩展。
|
|
237
|
+
+ [perl5-jieba] Perl版本的结巴分词扩展。
|
|
238
|
+
+ [jieba-dlang] D 语言的结巴分词 Deimos Bindings。
|
|
239
|
+
|
|
240
|
+
## 线上演示
|
|
241
|
+
|
|
242
|
+
[Web-Demo](http://cppjieba-webdemo.herokuapp.com/)
|
|
243
|
+
(建议使用chrome打开)
|
|
244
|
+
|
|
245
|
+
## 性能评测
|
|
246
|
+
|
|
247
|
+
[Jieba中文分词系列性能评测]
|
|
248
|
+
|
|
249
|
+
## Sponsorship
|
|
250
|
+
|
|
251
|
+
[](https://tracking.gitads.io/?campaign=gitads&repo=cppjieba&redirect=gitads.io)
|
|
252
|
+
|
|
253
|
+
## Contributors
|
|
254
|
+
|
|
255
|
+
### Code Contributors
|
|
256
|
+
|
|
257
|
+
This project exists thanks to all the people who contribute.
|
|
258
|
+
<a href="https://github.com/yanyiwu/cppjieba/graphs/contributors"><img src="https://opencollective.com/cppjieba/contributors.svg?width=890&button=false" /></a>
|
|
259
|
+
|
|
260
|
+
[GoJieba]:https://github.com/yanyiwu/gojieba
|
|
261
|
+
[CppJieba]:https://github.com/yanyiwu/cppjieba
|
|
262
|
+
[jannson]:https://github.com/jannson
|
|
263
|
+
[cppjiebapy]:https://github.com/jannson/cppjiebapy
|
|
264
|
+
[bung87]:https://github.com/bung87
|
|
265
|
+
[cppjieba-py]:https://github.com/bung87/cppjieba-py
|
|
266
|
+
[cppjiebapy_discussion]:https://github.com/yanyiwu/cppjieba/issues/1
|
|
267
|
+
[NodeJieba]:https://github.com/yanyiwu/nodejieba
|
|
268
|
+
[jiebaR]:https://github.com/qinwf/jiebaR
|
|
269
|
+
[simhash]:https://github.com/yanyiwu/simhash
|
|
270
|
+
[代码详解]:https://github.com/yanyiwu/cppjieba/wiki/CppJieba%E4%BB%A3%E7%A0%81%E8%AF%A6%E8%A7%A3
|
|
271
|
+
[issue25]:https://github.com/yanyiwu/cppjieba/issues/25
|
|
272
|
+
[exjieba]:https://github.com/falood/exjieba
|
|
273
|
+
[KeywordServer]:https://github.com/yanyiwu/keyword_server
|
|
274
|
+
[ngx_http_cppjieba_module]:https://github.com/yanyiwu/ngx_http_cppjieba_module
|
|
275
|
+
[dict.367W.utf8]:https://github.com/qinwf/BigDict
|
|
276
|
+
[cjieba]:http://github.com/yanyiwu/cjieba
|
|
277
|
+
[jieba_rb]:https://github.com/altkatz/jieba_rb
|
|
278
|
+
[iosjieba]:https://github.com/yanyiwu/iosjieba
|
|
279
|
+
[SqlJieba]:https://github.com/yanyiwu/sqljieba
|
|
280
|
+
[Jieba中文分词系列性能评测]:http://yanyiwu.com/work/2015/06/14/jieba-series-performance-test.html
|
|
281
|
+
[pg_jieba]:https://github.com/jaiminpan/pg_jieba
|
|
282
|
+
[gitbook-plugin-search-pro]:https://plugins.gitbook.com/plugin/search-pro
|
|
283
|
+
[cppjieba-server]:https://github.com/yanyiwu/cppjieba-server
|
|
284
|
+
[phpjieba]:https://github.com/jonnywang/phpjieba
|
|
285
|
+
[perl5-jieba]:https://metacpan.org/pod/distribution/Lingua-ZH-Jieba/lib/Lingua/ZH/Jieba.pod
|
|
286
|
+
[jieba-dlang]:https://github.com/shove70/jieba
|
|
287
|
+
[simple]:https://github.com/wangfenjin/simple
|
|
288
|
+
|
|
289
|
+
|