原帖地址: https://segmentfault.com/q/1010000010016451
如题,简单一点的功能是如何对一份英文 API 开发文档进行词频的统计?(文档可能是多个 html 文件,也可能是 chm 文件,不是简单的 txt 文本);
复杂一点的需求是,因为开发文档涉及很多类名、函数或方法名等,单词可能会连在一起,统计时最好能够分开(涉及英文分词技术);
再复杂一点的需求是,因为单纯统计一个文档的词频没多大的实际意义,如何将统计后的单词再加工处理:
剔除掉一些简单的,并对开发来说没多大意义的单词,如 the, are, to, is ……
分析出里面涉及到计算机的专业名词或编程语言的关键字(涉及到文档对应的不同语言);
对最终分析出的单词标注出解释(中文)……
如果开发具有以上功能的软件,具体需要涉及哪些技术? Python ?英语分词技术?机器学习?欢迎提供你的想法……
呃,其实我的痛点是,看一份英文文档时,有太多不懂的单词,经常要去查单词,效率太低了,如果有一个工具可以统计分析出一份文档的词汇,就可以在看文档前先大致熟悉词汇的意思,提高效率;而且对于开发时,命名也有帮助……
1
Chingim 2017-07-02 17:45:03 +08:00 via Android
痛点加一。
以前曾经用这种方法看美剧。统计一遍字幕单词,过一遍词汇就可以看了。 不过字幕文件是纯文本,毕竟容易处理 |
2
Kilerd 2017-07-02 18:12:30 +08:00 via iPhone
墨墨背单词有单词本功能,可以大致的提炼出单词列表
|
3
halfcoder 2017-07-02 19:00:11 +08:00 1
多个 html 也好,单个 chm 也好,txt 也罢,你首先都需要将其转换为纯文本单词流。这可能需要你预先完成去除 html 标签 /解压 chm 文件 /去除无用内容等工作。
英文分词应该有现成工具可用,搜一下就有了 the, are, to, is 这些停用词有现成的停用词列表,直接拿过来用即可。 专业名词可能需要自己整理一部分,关键字请参加语言标准。 标出解释需要使用开放的词典 API。 |
4
est 2017-07-02 19:06:37 +08:00
tfidf
|
5
cxbats 2017-07-02 19:55:09 +08:00 via Android
nltk
|
6
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! |
7
gsx123 2017-07-02 20:12:43 +08:00
貌似我开发的 爱英阅 大致能满足楼主需求^-^: http://iyingyue.net/iyingyue/index.html
chm 文档可以先转成 pdf 再提取 |
8
Haci OP |
9
zingl 2017-07-02 23:00:51 +08:00
正经程序员命名的时候都会用-、_、大小写其中一个做分词吧
|
10
PythonAnswer 2017-07-03 00:21:46 +08:00 via Android
导出纯文本。只分析正文。
|
11
Bryan0Z 2017-07-03 00:37:33 +08:00 via Android
先下载下来,保存为 txt,用 hadoop 跑一遍 word count,然后手工筛选单词
|