分享一个简单易懂、不需要语料库的分词程序~

2015-07-16 19:16:17 +08:00
 moonshile

先上地址
https://github.com/Moonshile/ChineseWordSegmentation

原理参考的是这篇神文,通俗易懂,作者不愧是中文系出身的!

好吧,我承认是想顺便求几个Star,真是还干净着呢。。


觉得有必要贴一下使用方法,非常简单~

from wordseg import WordSegment
doc = u'十四是十四四十是四十,十四不是四十,四十不是十四'
ws = WordSegment(doc, max_word_len=2, min_aggregation=1, min_entropy=0.5)
ws.segSentence(doc)

分词结果为

十四 是 十四 四十 是 四十 , 十四 不是 四十 , 四十 不是 十四
4353 次点击
所在节点    分享创造
18 条回复
schezukNewTos
2015-07-16 19:39:05 +08:00
善哉。
不过『本课程』之类的词组怎么解决的?
『是个』这样的搭配是怎么处理的?
偶见词语在一句话中连续出现该怎样应对?
moonshile
2015-07-16 19:46:54 +08:00
@schezukNewTos 这些都要看情况,具体来说是要看被分词的对象。
如果被分词的是一篇介绍一门课程的文章,而“本课程”出现足够多次,那么“本课程”就视为一个词语;否则,如果只是一篇泛泛介绍各门课程的文章,那么就会分成“本”和“课程”两个词。
具体了解的话可以看看我给的那篇参考文章,很好懂的~
ChanneW
2015-07-16 20:00:35 +08:00
星标后研
zangbob
2015-07-16 21:43:53 +08:00
很长的段落或文章,怎么整?不能直接读取.txt吗?
moonshile
2015-07-16 22:27:35 +08:00
@zangbob 可以先读到内存中,然后在调用……不过参数需要调整,我正在想办法让它能自适应较佳参数……
X_Del
2015-07-16 23:49:06 +08:00
分词与机器学习结合,用待分词的文本提取出个语料库再分词……
solsol
2015-07-17 00:17:09 +08:00
M67几年前的旧文拿来骗星……现在的中文分词算法早就不一样啦
Tiande
2015-07-17 00:19:15 +08:00
百度的 APIStore 提供的也有分词服务。
moonshile
2015-07-17 09:16:46 +08:00
@X_Del 嗯,基本就是这么个思路……
moonshile
2015-07-17 09:19:56 +08:00
@solsol 虽然你不需要,但是其他跟我一样刚刚看到的是需要的,收起你的傲慢吧
saber000
2015-07-17 10:01:42 +08:00
ws = WordSegment(doc, max_word_len=2, min_aggregation=1, min_entropy=0.5)
ws.segSentence(doc)

为什么doc要传两次?
moonshile
2015-07-17 10:21:54 +08:00
@saber000 就如X_Del所说,先用待分词的文本提取出语料库,然后再分词;其实第二次也可以传其他文本,不过是用从第一个文本提取的语料库进行分词
solsol
2015-07-17 13:24:27 +08:00
@moonshile 请问我哪一个字傲慢了?被说算法旧就受挫了?学习旧的没什么,拿出来宣传就不好了吧,只能忽悠那些真正需要的人。我提醒别人一句有问题么?多说无益。
lwbjing
2015-07-17 17:21:38 +08:00
"工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作"
Bryan0Z
2015-07-18 12:14:18 +08:00
@lwbjing 你赢了
Kabie
2015-07-18 13:53:28 +08:00
@solsol ...那么“现在的中文分词算法”又是怎么弄的呢。。。

……要提醒至少给个新算法的关键字吧。。。如果这都不屑于给。。。还不算傲慢吗。。。
warden2h
2015-07-23 16:28:00 +08:00
@lwbjing 你赢了
Rorysky
2018-08-13 00:02:06 +08:00
@solsol #13 老哥,求指点下分词的新算法 关键词~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/206203

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX