V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Haci
V2EX  ›  Python

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

  •  1
     
  •   Haci · 2017-07-02 17:35:33 +08:00 · 3308 次点击
    这是一个创建于 2705 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    • 剔除掉一些简单的,并对开发来说没多大意义的单词,如 the, are, to, is ……

    • 分析出里面涉及到计算机的专业名词或编程语言的关键字(涉及到文档对应的不同语言);

    • 对最终分析出的单词标注出解释(中文)……

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

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

    11 条回复    2017-07-03 00:37:33 +08:00
    Chingim
        1
    Chingim  
       2017-07-02 17:45:03 +08:00 via Android
    痛点加一。
    以前曾经用这种方法看美剧。统计一遍字幕单词,过一遍词汇就可以看了。
    不过字幕文件是纯文本,毕竟容易处理
    Kilerd
        2
    Kilerd  
       2017-07-02 18:12:30 +08:00 via iPhone
    墨墨背单词有单词本功能,可以大致的提炼出单词列表
    halfcoder
        3
    halfcoder  
       2017-07-02 19:00:11 +08:00   ❤️ 1
    多个 html 也好,单个 chm 也好,txt 也罢,你首先都需要将其转换为纯文本单词流。这可能需要你预先完成去除 html 标签 /解压 chm 文件 /去除无用内容等工作。
    英文分词应该有现成工具可用,搜一下就有了
    the, are, to, is 这些停用词有现成的停用词列表,直接拿过来用即可。
    专业名词可能需要自己整理一部分,关键字请参加语言标准。
    标出解释需要使用开放的词典 API。
    est
        4
    est  
       2017-07-02 19:06:37 +08:00
    tfidf
    cxbats
        5
    cxbats  
       2017-07-02 19:55:09 +08:00 via Android
    nltk
    Kilerd
        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!
    gsx123
        7
    gsx123  
       2017-07-02 20:12:43 +08:00
    貌似我开发的 爱英阅 大致能满足楼主需求^-^: http://iyingyue.net/iyingyue/index.html
    chm 文档可以先转成 pdf 再提取
    Haci
        8
    Haci  
    OP
       2017-07-02 21:02:33 +08:00
    由于问题编辑不了,这里更正下:
    分开连在一起的单词确实不是分词技术,之前说错了;

    更新的问题可以看原帖: https://segmentfault.com/q/1010000010016451
    zingl
        9
    zingl  
       2017-07-02 23:00:51 +08:00
    正经程序员命名的时候都会用-、_、大小写其中一个做分词吧
    PythonAnswer
        10
    PythonAnswer  
       2017-07-03 00:21:46 +08:00 via Android
    导出纯文本。只分析正文。
    Bryan0Z
        11
    Bryan0Z  
       2017-07-03 00:37:33 +08:00 via Android
    先下载下来,保存为 txt,用 hadoop 跑一遍 word count,然后手工筛选单词
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1080 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 19:26 · PVG 03:26 · LAX 11:26 · JFK 14:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.