Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

用户自定义词典可否支持包含标点符号的词组? #67

Closed
cxa opened this issue May 7, 2016 · 8 comments
Closed

用户自定义词典可否支持包含标点符号的词组? #67

cxa opened this issue May 7, 2016 · 8 comments

Comments

@cxa
Copy link

cxa commented May 7, 2016

yanyiwu 你好,

首先感谢你的辛勤工作。

我想使用 cc-cedict 作为分词词典,然而里面会包含类似“同一个世界,同一个梦想”这个包含标点的词组,结巴并不能将它识别为一个词组。不知能否加上一个参数选项以支持这种需求?

@yanyiwu
Copy link
Owner

yanyiwu commented May 8, 2016

@cxa 你好,感谢反馈这个问题。
这个问题提的很好,因为确实有一个分词前的逻辑先【粗切】一遍,不管是python版本的jieba分词还是cppjieba,都有【粗切】这个环节,因为在粗切的时候就已经被切成了【同一个时间/,/同一个梦想】三个句子。然后再对各个句子进行分词。

这个问题应该是可以解决的,我试试解决一下这个问题。晚上还有点事得出去一下,晚上回来或者明天再解决。

谢谢反馈!

@cxa
Copy link
Author

cxa commented May 8, 2016

我自己看了下源码,问题应该出在这:https://github.com/yanyiwu/cppjieba/blob/master/include/cppjieba/SegmentBase.hpp#L12 。如果能将 const Rune SPECIAL_SYMBOL[] = {32u, 9u, 10u, 65292u, 12290u}; 参数化就好了。遗憾我 C++ 水平处在只看得懂字母和数字,而且涉及到 API 改动,无法来个 pull request.

@yanyiwu
Copy link
Owner

yanyiwu commented May 8, 2016

依次代表的就是分隔符就是 \t\n,。
所以如果粗暴的来说,你只要把 onst Rune SPECIAL_SYMBOL[] = {32u, 9u, 10u} 也就是把后面的中文逗号和句号去掉,就可以满足你的需求了。
不过这样的方法比较粗暴一些。

@yanyiwu
Copy link
Owner

yanyiwu commented May 9, 2016

在最近的代码版本中新增了一个Jieba::ResetSeparators api来手动重置分隔符,
具体的使用方法可以参加测试代码中的 https://github.com/yanyiwu/cppjieba/blob/master/test/unittest/jieba_test.cpp#L112

@cxa
Copy link
Author

cxa commented May 9, 2016

👍

@liuleigit
Copy link

请问python版的jieba有解决办法吗?谢谢

@w32zhong
Copy link
Contributor

@liuleigit 建议你去 https://github.com/fxsjy/jieba/issues 提问,这里主要针对 cpp 版本。作者也不是一个人。

@liuleigit
Copy link

@t-k- 好的,thank you

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants