Wie der Titel ist eine einfachere Funktion: Wie zählt man die Worthäufigkeit einesEnglischenAPI-Entwicklungsdokuments?(Das Dokument kann aus mehreren HTML-Dateien bestehen, oder es kann eine CHM-Datei sein, kein einfacher TXT-Text);
Eine kompliziertere Anforderung besteht darin, dass die Wörter möglicherweise miteinander verbunden sind, da das Entwicklungsdokument viele Klassennamen, Funktions- oder Methodennamen usw. enthält. Beim Zählen ist es am besten, sie zu trennen(Dies kann gemäß den Benennungsregeln getrennt werden );
Eine kompliziertere Anforderung besteht darin, die gezählten Wörter erneut zu verarbeiten, da das einfache Zählen der Worthäufigkeit eines Dokuments keine große praktische Bedeutung hat:
- Entfernen Sie einige einfache Wörter, die für die Entwicklung wenig Bedeutung haben, wie zum Beispiel „sind“, „zu“, „ist...“
- Analysieren Sie professionelle Substantive im Zusammenhang mit Computern, Wörter mit spezifischer Bedeutung in der Programmierung oder Schlüsselwörter von Programmiersprachen (die verschiedene Sprachen betreffen, die dem Dokument entsprechen).Kommentieren Sie die Erklärung für die endgültig analysierten Wörter (Chinesisch, über eine Drittanbieter-API)...
Wenn Sie Software mit den oben genannten Funktionen entwickeln, welche spezifischen Technologien werden benötigt?
Herzlich willkommen, Ihre Ideen einzubringen...
Mein Problem ist eigentlich, dass ich beim Lesen eines englischen Dokuments zu viele Wörter nicht verstehe, was statistisch gesehen zu ineffizient ist Analysieren Sie den Wortschatz eines Dokuments. Sie können sich vor dem Lesen des Dokuments grob mit der Bedeutung des Wortschatzes vertraut machen, um die Effizienz zu verbessern, und die Benennung ist auch hilfreich für die Entwicklung ...
Anmerkungen zur Änderung:
Das Trennen von miteinander verbundenen Wörtern ist in der Tat keine Wortsegmentierungstechnologie. Ich habe es vorher falsch gesagt;
- Meine Idee zum Einsatz von maschinellem Lernen, die in der ursprünglichen Frage erwähnt wurde, ist folgende: Eine Software mit maschinellem Lernen liest viele Programmierentwicklungsdokumente, findet die darin enthaltenen Fachbegriffe heraus und macht die Implementierung der gesamten Funktion intelligenter ... Natürlich ist das nur meine Einbildung, es kann sein, dass es nicht richtig ist, kritisieren Sie nicht, wenn es Ihnen nicht gefällt;
- Abschließend noch das Problem, das ich beim Lesen englischer Dokumente erwähnt habe: Jeder hat eine Phase, in der er sie zunächst nicht versteht und seine Effizienz gering ist. Wer weiß, dass sich die Effizienz allmählich verbessert, wenn man mehr liest? Jeder kennt die Wahrheit...
Aber das ist nicht der Schwerpunkt unserer Diskussion
- , ich habe nur diese Idee und stelle sie allen zur Diskussion vor
Wenn die von Ihnen gestellte Frage falsch ist, können Sie eine Nachricht hinterlassen und ich werde sie ändern. Können Sie sie nicht ablehnen?
准备考研,很久没写过代码了,不过大概思路应该是:
清洗过滤:对于html,首先把内容过滤出来,你可以自己写正则或者用找点别人写好的
单词分词:先用空格等常见的分隔符对单词过滤,再根据不同的语言命名规范找出一个个的单词
过滤常用词:在网上应该可以找到英语常用词的文件,匹配一下
WordCount:可以直接单纯的用python自己实现MapReduce的过滤,或者Hadoop、Spark之类的也可以
到此为止就完成了过滤简单词的单词统计了
关于统计出计算机相关词,你需要网上下载计算机相关词汇的数据文件,直接匹配即可
需要给出解释的话,调用有道、百度翻译的api即可,不过这些API可能有次数上限,我没有用过。
以上所说步骤都没有考虑效率的问题,如果需要考虑效率问题,还需要使用到些算法或直接使用别人写好的类库。
关于你所说到的机器学习,这里的需求暂时不需要、且没必要使用到。
最后:我还是想说,想读懂文档的最快的办法就是多读文档,坚持读下来,你会发现读文档的速度会越来越快。不过把这个当作练手的项目,也算是做了点有意思的事情。
关于问题修改后的回复:
你提及的机器学习,目前大体上是有监督式和非监督式,但根据你的提及:
如果采用监督式学习那必然需要语料数据的支持,而如果已经有语料数据何不直接用字符串匹配实现?
当采用非监督式学习,目前我也是初学,依我的理解,似乎只能达到聚类的效果,若想自动识别是计算机术语,必然还是需要人工标注或者数据的支持
如果再往下深究,就需要好好研究NLP了
我觉得你好像是对机器学习感兴趣,但我感觉这个并不是机器学习练手的一个好项目。
这个应该不叫英语分词,分词应该指按句子成分划分。连在一次的变量名可以考虑按常见的命名方式识别,比如大小写的Camel-Case、下划线分割的 Underscores 等。
分词可以找各种 Word Splitting 库,python 应该有很多。计算机的专业名词下载词库,单词提取出来之后跟词库匹配得到释义。
但其实即使做出来也不一定能更方便阅读,光看单词有点曲线救国的感觉,很可能根本看不进去。计算机文章的词汇量不是很多,一回生两回熟,优化查词体验比较妥,推荐 collins双解 结合 Macmillan ,MDict 或者欧路词典都可以加载。Chrome 也可以装 Saladict 沙拉查词。