modify cmakelists.txt for gbk encoding

This commit is contained in:
wyy 2013-12-06 00:21:18 -08:00
parent b1a71f0495
commit d82ac83a8a
3 changed files with 12 additions and 15 deletions

View File

@ -1,7 +1,9 @@
PROJECT(CPPJIEBA)
SET(CMAKE_INSTALL_PREFIX /usr)
ADD_DEFINITIONS(-std=c++0x -O3)
#ADD_DEFINITIONS(-DCPPJIEBA_GBK)
IF (DEFINED ENC)
ADD_DEFINITIONS(-DCPPJIEBA_${ENC})
ENDIF()
ADD_SUBDIRECTORY(src)
ADD_SUBDIRECTORY(dicts)
ADD_SUBDIRECTORY(scripts)

View File

@ -8,9 +8,6 @@
现在支持utf8,gbk编码的分词。
- `master`分支支持`utf8`编码
- `gbk`分支支持`gbk`编码
## 安装与使用
### 下载和安装
@ -22,6 +19,8 @@ cd cppjieba-master
mkdir build
cd build
cmake ..
# 默认是utf8编码如果要使用gbk编码则使用下句cmake命令
# cmake .. -DENC=GBK
make
sudo make install
```
@ -122,14 +121,14 @@ Output:
核心目录,包含主要源代码。
#### Trie树
Trie.cpp/Trie.h 负责载入词典的trie树主要供Segment模块使用。
Trie.hpp 负责载入词典的trie树主要供Segment模块使用。
#### Segment模块
MPSegment.cpp/MPSegment.h
MPSegment.hpp
(Maximum Probability)最大概率法:负责根据Trie树构建有向无环图和进行动态规划算法是分词算法的核心。
HMMSegment.cpp/HMMSegment.h
HMMSegment.hpp
是根据HMM模型来进行分词主要算法思路是根据(B,E,M,S)四个状态来代表每个字的隐藏状态。
HMM模型由dicts/下面的`hmm_model.utf8`提供。
分词算法即viterbi算法。

View File

@ -6,7 +6,7 @@
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;
class ChineseFilter;
class ChFilterIterator
@ -55,19 +55,15 @@ namespace CppJieba
{
return DIGIT_OR_LETTER;
}
if(x >= 0x4e00 && x <= 0x9fff)
{
return CHWORD;
}
return OTHERS;
}
ChFilterIterator _get(UniConIter iter)
{
UniConIter _begin = iter;
const UniConIter& _end = ptUnico->end();
if(iter == _end)
{
return ChFilterIterator(ptUnico, end, end, OTHERS);
return ChFilterIterator(ptUnico, end, end, DIGIT_OR_LETTER);
}
CHAR_TYPE charType = _charType(*iter);
iter ++;
@ -99,7 +95,7 @@ namespace CppJieba
}
iterator end()
{
return iterator(&_unico, _unico.end(), _unico.end(), OTHERS);
return iterator(&_unico, _unico.end(), _unico.end(), DIGIT_OR_LETTER);
}
};
}