Closed onexuan closed 2 years ago
对于特定领域的效果确实有待提升,后续有空了会优化下哈。
@onexuan xmnlp v0.5.0 发布了,新版本重新训练了词法分析模块,恢复了自定义词典的功能,支持三个分词接口:
上述句子效果如下:
In [6]: doc = '7月1日,世预赛亚洲区12强赛抽签举行,中国队分在B组。同组对手是日本、澳大利亚、沙特、阿曼、越南。体育博主潘伟力在个人微博上表示,国足应把目标定在小组第二,第三意义不大'
In [7]: print(xmnlp.seg(doc))
Lazy load lexical...
['7月1日', ',', '世', '预赛', '亚洲区', '12', '强', '赛', '抽签', '举行', ',', '中国队', '分在', 'B', '组', '。', '同组', '对手', '是', '日本', '、', '澳大利亚', '、', '沙特', '、', '阿曼', '、', '越南', '。', '体育', '博主', '潘', '伟力', '在', '个人', '微博', '上', '表示', ',', '国足', '应', '把', '目', '标定', '在', '小组', '第二', ',', '第三', '意义', '不大']
In [8]: print(xmnlp.fast_seg(doc))
['7', '月', '1', '日', ',', '世', '预赛', '亚洲区', '12', '强', '赛', '抽签', '举行', ',', '中国队', '分在', 'B', '组', '。', '同组', '对手', '是', '日本', '、', '澳大利亚', '、', '沙特', '、', '阿曼', '、', '越南', '。', '体育', '博', '主', '潘', '伟力', '在', '个人', '微', '博', '上', '表示', ',', '国足', '应', '把', '目', '标定', '在', '小组', '第二', ',', '第三', '意义', '不大']
In [9]: print(xmnlp.deep_seg(doc))
['7月1日', ',', '世预赛', '亚洲区', '12强', '赛', '抽签', '举行', ',', '中国队', '分', '在', 'B', '组', '。', '同组对手', '是', '日本', '、', '澳大利亚', '、', '沙特', '、', '阿曼', '、', '越南', '。', '体育', '博主', '潘伟力', '在', '个人', '微博', '上', '表示', ',', '国', '足', '应', '把', '目标', '定', '在', '小组', '第二', ',', '第三', '意义', '不大']
分词速度对比
In [12]: %timeit xmnlp.fast_seg(doc)
385 µs ± 2.36 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
In [13]: %timeit xmnlp.seg(doc)
19.5 ms ± 435 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
In [14]: %timeit xmnlp.deep_seg(doc)
20.2 ms ± 2.28 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
如果效果还不满足要求,可以自定义词典
text='7月1日,世预赛亚洲区12强赛抽签举行,中国队分在B组。同组对手是日本、澳大利亚、沙特、阿曼、越南。体育博主潘伟力在个人微博上表示,国足应把目标定在小组第二,第三意义不大。' xmnlp.seg(text) ['7月1日', ',', '世', '预赛', '亚洲区', '12', '强赛', '抽签', '举行', ',', '中国队', '分', '在', 'B', '组', '。', '同', '组', '对手', '是', '日本', '、', '澳大利亚', '、', '沙特', '、', '阿曼', '、', '越南', '。', '体育博主', '潘伟力', '在', '个人', '微博', '上', '表示', ',', '国', '足', '应', '把', '目标', '定', '在', '小组', '第二', ',', '第三意义', '不大', '。']