如何统计一份英文 API 开发文档(如 javadoc 文档)的词频?

2017-07-02 17:35:33 +08:00
 Haci

原帖地址: https://segmentfault.com/q/1010000010016451

如题,简单一点的功能是如何对一份英文 API 开发文档进行词频的统计?(文档可能是多个 html 文件,也可能是 chm 文件,不是简单的 txt 文本);

复杂一点的需求是,因为开发文档涉及很多类名、函数或方法名等,单词可能会连在一起,统计时最好能够分开(涉及英文分词技术);

再复杂一点的需求是,因为单纯统计一个文档的词频没多大的实际意义,如何将统计后的单词再加工处理:

如果开发具有以上功能的软件,具体需要涉及哪些技术? Python ?英语分词技术?机器学习?欢迎提供你的想法……

呃,其实我的痛点是,看一份英文文档时,有太多不懂的单词,经常要去查单词,效率太低了,如果有一个工具可以统计分析出一份文档的词汇,就可以在看文档前先大致熟悉词汇的意思,提高效率;而且对于开发时,命名也有帮助……

3328 次点击
所在节点    Python
11 条回复
Chingim
2017-07-02 17:45:03 +08:00
痛点加一。
以前曾经用这种方法看美剧。统计一遍字幕单词,过一遍词汇就可以看了。
不过字幕文件是纯文本,毕竟容易处理
Kilerd
2017-07-02 18:12:30 +08:00
墨墨背单词有单词本功能,可以大致的提炼出单词列表
halfcoder
2017-07-02 19:00:11 +08:00
多个 html 也好,单个 chm 也好,txt 也罢,你首先都需要将其转换为纯文本单词流。这可能需要你预先完成去除 html 标签 /解压 chm 文件 /去除无用内容等工作。
英文分词应该有现成工具可用,搜一下就有了
the, are, to, is 这些停用词有现成的停用词列表,直接拿过来用即可。
专业名词可能需要自己整理一部分,关键字请参加语言标准。
标出解释需要使用开放的词典 API。
est
2017-07-02 19:06:37 +08:00
tfidf
cxbats
2017-07-02 19:55:09 +08:00
nltk
Kilerd
2017-07-02 20:01:58 +08:00
想了一个最简单的实现方案

维护一个文本,一行一个单词,作为排除列表

然后用 regex 去提取页面所有单词

([a-zA-Z]+(('|-)[a-zA-z]+)?)
可以匹配
I'm a google-based programer.
里面的所有单词

然后再判断这些单词在不在排除列表里面, 就得到的一个 需要查询的单词列表

然后就调用 API 去查询单词一次,存进 dict 里面就好了。

easy job!
gsx123
2017-07-02 20:12:43 +08:00
貌似我开发的 爱英阅 大致能满足楼主需求^-^: http://iyingyue.net/iyingyue/index.html
chm 文档可以先转成 pdf 再提取
Haci
2017-07-02 21:02:33 +08:00
由于问题编辑不了,这里更正下:
分开连在一起的单词确实不是分词技术,之前说错了;

更新的问题可以看原帖: https://segmentfault.com/q/1010000010016451
zingl
2017-07-02 23:00:51 +08:00
正经程序员命名的时候都会用-、_、大小写其中一个做分词吧
PythonAnswer
2017-07-03 00:21:46 +08:00
导出纯文本。只分析正文。
Bryan0Z
2017-07-03 00:37:33 +08:00
先下载下来,保存为 txt,用 hadoop 跑一遍 word count,然后手工筛选单词

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

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

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

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

© 2021 V2EX