ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 8155|回复: 20

[原创] 中文分词

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-8-7 21:20 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 zopey 于 2019-8-8 11:50 编辑

用vba字典对D列文本做统计分析,实现自动分词。
暂只支持中文字符,不含空格及别的符号。
中文分词.rar (19.57 KB, 下载次数: 155)

代码微调,测试样本
311.JPG

中文分词2.zip (21.33 KB, 下载次数: 169)

TA的精华主题

TA的得分主题

发表于 2019-8-7 21:40 | 显示全部楼层
呃,这么玩啊。。。。
我觉得不如去找个输入法的词库效果更好点。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-8-7 22:24 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
killq 发表于 2019-8-7 21:40
呃,这么玩啊。。。。
我觉得不如去找个输入法的词库效果更好点。。。

程序的目的 就是根据文本的具体内容,建立临时的词库。再回头 拆分出文本的“主谓宾”结构。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-8-12 17:13 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. Private data()

  2. Property Let items(Optional index, ByVal arry As Variant)
  3.     If IsArray(arry) Then data = arry Else data(index) = arry
  4. End Property

  5. Property Get items(Optional index = -1) As Variant
  6.     If index >= 0 Then items = data(index) Else items = data
  7. End Property


  8. Private Sub Class_Initialize()
  9.     ReDim data(0 To 10)
  10. End Sub

  11. Private Sub Class_Terminate()
  12.     Erase data
  13. End Sub
复制代码
  1. Sub 测试()
  2. Dim dic As Object
  3. Set dic = CreateObject("scripting.dictionary")

  4. If Not dic.exists("a") Then Set dic("a") = New parents
  5. dic("a").items = Array(1, 99, 3, 4, 5)
  6. MsgBox UBound(dic("a").items())

  7. dic("a").items(1) = 88
  8. MsgBox dic("a").items(1)

  9. dic("a")(1) = 77
  10. MsgBox dic("a")(1)
  11. End Sub
复制代码


类模块-学习例.zip (18.92 KB, 下载次数: 178)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-8-12 17:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
有了PowerQuery,就不用那么费劲了吧
QQ截图20190812172147.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-8-12 17:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
wdx223 发表于 2019-8-12 17:22
有了PowerQuery,就不用那么费劲了吧

保留D列文本,把A、B 两列先清空 ,PQ能得到什么?

TA的精华主题

TA的得分主题

发表于 2019-8-12 17:33 | 显示全部楼层
zopey 发表于 2019-8-12 17:29
保留D列文本,把A、B 两列先清空 ,PQ能得到什么?

好吧,你赢了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-8-15 10:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
制作了2个互动按钮,
1、从原词D列 提取出 词典A列后,如不满意可以人为调整;
2、照搬 @时间的音符的 trie 代码 实现分词E列,添加括号。

效果如图:
122.JPG

详见附件:
中文分词3.rar (26.81 KB, 下载次数: 214)

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-8-17 11:15 | 显示全部楼层
呵呵,这样玩吗,,,如果有新词不在字典里边,,不添加字典能行吗,,,字典里边 同时有 "玉米"和"玉米油"这两个词,,,请问句子中出现"玉米油"这三个字的时候怎么拆分呢

TA的精华主题

TA的得分主题

发表于 2019-8-17 11:35 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
弱弱的问一下,这个功能可以应用到哪些实际工场景中?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-4 02:13 , Processed in 0.061747 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表