mirror of
https://github.com/yanyiwu/cppjieba.git
synced 2025-07-18 00:00:12 +08:00
modify cmakelists.txt for gbk encoding
This commit is contained in:
parent
b1a71f0495
commit
d82ac83a8a
@ -1,7 +1,9 @@
|
|||||||
PROJECT(CPPJIEBA)
|
PROJECT(CPPJIEBA)
|
||||||
SET(CMAKE_INSTALL_PREFIX /usr)
|
SET(CMAKE_INSTALL_PREFIX /usr)
|
||||||
ADD_DEFINITIONS(-std=c++0x -O3)
|
ADD_DEFINITIONS(-std=c++0x -O3)
|
||||||
#ADD_DEFINITIONS(-DCPPJIEBA_GBK)
|
IF (DEFINED ENC)
|
||||||
|
ADD_DEFINITIONS(-DCPPJIEBA_${ENC})
|
||||||
|
ENDIF()
|
||||||
ADD_SUBDIRECTORY(src)
|
ADD_SUBDIRECTORY(src)
|
||||||
ADD_SUBDIRECTORY(dicts)
|
ADD_SUBDIRECTORY(dicts)
|
||||||
ADD_SUBDIRECTORY(scripts)
|
ADD_SUBDIRECTORY(scripts)
|
||||||
|
11
README.md
11
README.md
@ -8,9 +8,6 @@
|
|||||||
|
|
||||||
现在支持utf8,gbk编码的分词。
|
现在支持utf8,gbk编码的分词。
|
||||||
|
|
||||||
- `master`分支支持`utf8`编码
|
|
||||||
- `gbk`分支支持`gbk`编码
|
|
||||||
|
|
||||||
## 安装与使用
|
## 安装与使用
|
||||||
|
|
||||||
### 下载和安装
|
### 下载和安装
|
||||||
@ -22,6 +19,8 @@ cd cppjieba-master
|
|||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
cmake ..
|
cmake ..
|
||||||
|
# 默认是utf8编码,如果要使用gbk编码则使用下句cmake命令
|
||||||
|
# cmake .. -DENC=GBK
|
||||||
make
|
make
|
||||||
sudo make install
|
sudo make install
|
||||||
```
|
```
|
||||||
@ -122,14 +121,14 @@ Output:
|
|||||||
核心目录,包含主要源代码。
|
核心目录,包含主要源代码。
|
||||||
|
|
||||||
#### Trie树
|
#### Trie树
|
||||||
Trie.cpp/Trie.h 负责载入词典的trie树,主要供Segment模块使用。
|
Trie.hpp 负责载入词典的trie树,主要供Segment模块使用。
|
||||||
|
|
||||||
#### Segment模块
|
#### Segment模块
|
||||||
|
|
||||||
MPSegment.cpp/MPSegment.h
|
MPSegment.hpp
|
||||||
(Maximum Probability)最大概率法:负责根据Trie树构建有向无环图和进行动态规划算法,是分词算法的核心。
|
(Maximum Probability)最大概率法:负责根据Trie树构建有向无环图和进行动态规划算法,是分词算法的核心。
|
||||||
|
|
||||||
HMMSegment.cpp/HMMSegment.h
|
HMMSegment.hpp
|
||||||
是根据HMM模型来进行分词,主要算法思路是根据(B,E,M,S)四个状态来代表每个字的隐藏状态。
|
是根据HMM模型来进行分词,主要算法思路是根据(B,E,M,S)四个状态来代表每个字的隐藏状态。
|
||||||
HMM模型由dicts/下面的`hmm_model.utf8`提供。
|
HMM模型由dicts/下面的`hmm_model.utf8`提供。
|
||||||
分词算法即viterbi算法。
|
分词算法即viterbi算法。
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
namespace CppJieba
|
namespace CppJieba
|
||||||
{
|
{
|
||||||
|
|
||||||
enum CHAR_TYPE { CHWORD = 0, DIGIT_OR_LETTER = 1, OTHERS = 2};
|
enum CHAR_TYPE { CHWORD = 0, DIGIT_OR_LETTER = 1};
|
||||||
typedef Unicode::const_iterator UniConIter;
|
typedef Unicode::const_iterator UniConIter;
|
||||||
class ChineseFilter;
|
class ChineseFilter;
|
||||||
class ChFilterIterator
|
class ChFilterIterator
|
||||||
@ -55,19 +55,15 @@ namespace CppJieba
|
|||||||
{
|
{
|
||||||
return DIGIT_OR_LETTER;
|
return DIGIT_OR_LETTER;
|
||||||
}
|
}
|
||||||
if(x >= 0x4e00 && x <= 0x9fff)
|
|
||||||
{
|
|
||||||
return CHWORD;
|
return CHWORD;
|
||||||
}
|
}
|
||||||
return OTHERS;
|
|
||||||
}
|
|
||||||
ChFilterIterator _get(UniConIter iter)
|
ChFilterIterator _get(UniConIter iter)
|
||||||
{
|
{
|
||||||
UniConIter _begin = iter;
|
UniConIter _begin = iter;
|
||||||
const UniConIter& _end = ptUnico->end();
|
const UniConIter& _end = ptUnico->end();
|
||||||
if(iter == _end)
|
if(iter == _end)
|
||||||
{
|
{
|
||||||
return ChFilterIterator(ptUnico, end, end, OTHERS);
|
return ChFilterIterator(ptUnico, end, end, DIGIT_OR_LETTER);
|
||||||
}
|
}
|
||||||
CHAR_TYPE charType = _charType(*iter);
|
CHAR_TYPE charType = _charType(*iter);
|
||||||
iter ++;
|
iter ++;
|
||||||
@ -99,7 +95,7 @@ namespace CppJieba
|
|||||||
}
|
}
|
||||||
iterator end()
|
iterator end()
|
||||||
{
|
{
|
||||||
return iterator(&_unico, _unico.end(), _unico.end(), OTHERS);
|
return iterator(&_unico, _unico.end(), _unico.end(), DIGIT_OR_LETTER);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user