查看: 1149|回复: 13
打印 上一主题 下一主题

[求助] 请教 Python + NLTK

[复制链接]

该用户从未签到

58

主题

933

回帖

3897

积分

被盗用户

积分
3897

灌水大神章小蜜蜂章笑傲江湖章

跳转到指定楼层
1
发表于 2016-6-30 22:05:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
有谁能教教怎么使用Python + NLTK吗?

该用户从未签到

19

主题

363

回帖

2553

积分

解元

Rank: 5Rank: 5

积分
2553

灌水大神章小蜜蜂章笑傲江湖章

2
发表于 2016-6-30 22:28:14 | 只看该作者
装一个集成各种科学库的PYTHON发行版就行,比如winpython,用官网的版本就非常麻烦。

该用户从未签到

58

主题

933

回帖

3897

积分

被盗用户

积分
3897

灌水大神章小蜜蜂章笑傲江湖章

3
 楼主| 发表于 2016-7-1 07:14:56 | 只看该作者
fnaviwwo1 发表于 2016-6-30 22:28
装一个集成各种科学库的PYTHON发行版就行,比如winpython,用官网的版本就非常麻烦。

好的 谢谢 试试看

该用户从未签到

19

主题

363

回帖

2553

积分

解元

Rank: 5Rank: 5

积分
2553

灌水大神章小蜜蜂章笑傲江湖章

4
发表于 2016-7-2 15:33:16 | 只看该作者
想用nltk弄一个考试真题例句词典。。。。

该用户从未签到

58

主题

933

回帖

3897

积分

被盗用户

积分
3897

灌水大神章小蜜蜂章笑傲江湖章

5
 楼主| 发表于 2016-7-3 02:18:52 | 只看该作者
fnaviwwo1 发表于 2016-7-2 15:33
想用nltk弄一个考试真题例句词典。。。。

大概会是什么样式的?有题库了吗?

该用户从未签到

19

主题

363

回帖

2553

积分

解元

Rank: 5Rank: 5

积分
2553

灌水大神章小蜜蜂章笑傲江湖章

6
发表于 2016-7-3 06:57:43 | 只看该作者
lxchen2001 发表于 2016-7-3 02:18
大概会是什么样式的?有题库了吗?

目前收集了托福tpo,雅思剑4-10,还有一些国内考试的题目。。。正好看到nltk有个分词断句模块。。。我想拿句子做headword然后句子里的每个单词设置@@@link ,vocabulary.com 的语料库偏报纸,而考试的文章以新闻杂志和学术杂志为主了,两者文风不完全一致。。。对了,不知道国外公开课的字幕能不能当语料库啊。。。我想这些东西如果是私下用是可以的。

该用户从未签到

58

主题

933

回帖

3897

积分

被盗用户

积分
3897

灌水大神章小蜜蜂章笑傲江湖章

7
 楼主| 发表于 2016-7-3 15:54:10 | 只看该作者
雅思托福如果能写出报刊的局势和文法,应该足以。:-)

有个英国学术语料库,可以免费下载:http://ota.ox.ac.uk/text/2539.zip 收集了2761篇学术文章(500-5000个字)。如何导入到NLTK? 并且比较容易展示出来?

字幕语料库,自用的肯定没问题。

该用户从未签到

58

主题

933

回帖

3897

积分

被盗用户

积分
3897

灌水大神章小蜜蜂章笑傲江湖章

8
 楼主| 发表于 2016-7-3 23:43:37 | 只看该作者
fnaviwwo1 发表于 2016-7-3 06:57
目前收集了托福tpo,雅思剑4-10,还有一些国内考试的题目。。。正好看到nltk有个分词断句模块。。。我想 ...

看了一下您说得的,但觉得有几个地方需要考虑 。

- 有些句子很长,可能是40-50个词,这种情况下怎么 处理?
- 简单单词, 高频率的单词,如the, a, this, 这样的情况怎么处理?

该用户从未签到

19

主题

363

回帖

2553

积分

解元

Rank: 5Rank: 5

积分
2553

灌水大神章小蜜蜂章笑傲江湖章

9
发表于 2016-7-4 00:52:23 | 只看该作者
本帖最后由 fnaviwwo1 于 2016-7-4 00:59 编辑
lxchen2001 发表于 2016-7-3 23:43
看了一下您说得的,但觉得有几个地方需要考虑 。

- 有些句子很长,可能是40-50个词,这种情况下怎么  ...


我就是说说想法啦,希望能和您一同探讨可行性。


之前看到论坛里有大神做过国内考试真题的词典,感觉效果非常棒。
[取自考研英语真题]1997-2015年真题单词、词频、意思及其例句
也看到有大神做过新概念英语的词典。
[英-英] 新概念英语全文句库

简单词的问题,nltk有个stopwords列表,这些词不要
  1. >>> from nltk.corpus import stopwords
  2. >>> stopwords.words('english')
  3. ['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', 'your', 'yours',
  4. 'yourself', 'yourselves', 'he', 'him', 'his', 'himself', 'she', 'her', 'hers',
  5. 'herself', 'it', 'its', 'itself', 'they', 'them', 'their', 'theirs', 'themselves',
  6. 'what', 'which', 'who', 'whom', 'this', 'that', 'these', 'those', 'am', 'is', 'are',
  7. 'was', 'were', 'be', 'been', 'being', 'have', 'has', 'had', 'having', 'do', 'does',
  8. 'did', 'doing', 'a', 'an', 'the', 'and', 'but', 'if', 'or', 'because', 'as', 'until',
  9. 'while', 'of', 'at', 'by', 'for', 'with', 'about', 'against', 'between', 'into',
  10. 'through', 'during', 'before', 'after', 'above', 'below', 'to', 'from', 'up', 'down',
  11. 'in', 'out', 'on', 'off', 'over', 'under', 'again', 'further', 'then', 'once', 'here',
  12. 'there', 'when', 'where', 'why', 'how', 'all', 'any', 'both', 'each', 'few', 'more',
  13. 'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only', 'own', 'same', 'so',
  14. 'than', 'too', 'very', 's', 't', 'can', 'will', 'just', 'don', 'should', 'now']
复制代码


关于词典的布局,因为特定于某一们考试,句子的数量虽然大但是还是很有限。
确实每个句子会有很多词(还包括词型变化),如果每个句子都放到他出现的单词下面会有很多冗余。
感觉可以设置很多不存在的词条来放句子,比如 id_0001->一个句子,这样子。
然后利用mdict的@@@link功能,句子里的每个单词都连接到句子,mdict会直接显示链接后的结果的。

这些冗余因为mdx是压缩保存的,我觉得重复的问题也不是不大。

通过不同的单词下重复若干经典例句,会给单词留下非常深刻的印象,个人感觉比直接背孤立单词(特别是释义很长的时候)有效果。

题外话:
新东方的有些单词书例句看着真不爽,感觉怪怪的。

该用户从未签到

58

主题

933

回帖

3897

积分

被盗用户

积分
3897

灌水大神章小蜜蜂章笑傲江湖章

10
 楼主| 发表于 2016-7-4 17:14:12 | 只看该作者
本帖最后由 lxchen2001 于 2016-7-4 17:24 编辑
fnaviwwo1 发表于 2016-7-4 00:52
我就是说说想法啦,希望能和您一同探讨可行性。


谢谢分享

学习中 ......  stopwords 还没学到  很棒的功能 我还想着自己去列出呢

该用户从未签到

58

主题

933

回帖

3897

积分

被盗用户

积分
3897

灌水大神章小蜜蜂章笑傲江湖章

11
 楼主| 发表于 2016-7-4 20:52:04 | 只看该作者
fnaviwwo1 发表于 2016-7-4 00:52
我就是说说想法啦,希望能和您一同探讨可行性。

试用了一下stopwords, 觉得不是很方便,需要自己外加很多词,可能从词频中选出高频词比较方便。

标点可以用 string.punctuation 加入

遇到的问题有些词在stopwords list中,却仍被tokenize. 中横线'-'也是。

该用户从未签到

58

主题

933

回帖

3897

积分

被盗用户

积分
3897

灌水大神章小蜜蜂章笑傲江湖章

12
 楼主| 发表于 2016-7-5 23:37:24 | 只看该作者
本帖最后由 lxchen2001 于 2016-7-5 23:48 编辑

琢磨出来了:

1.文档放入nltk_data
2. 修改 __init__.py 就能导入自建的语料库

这样方便很多不用自己再去建个数据库, 特别是那些XML语料库,格式已经很规范了

下一步,考虑怎么去将数据呈现出来

20160705173609.png (13.37 KB, 下载次数: 0)

20160705173609.png

20160705174256.png (16.63 KB, 下载次数: 0)

20160705174256.png

该用户从未签到

58

主题

933

回帖

3897

积分

被盗用户

积分
3897

灌水大神章小蜜蜂章笑傲江湖章

13
 楼主| 发表于 2016-7-13 23:25:39 | 只看该作者
本帖最后由 lxchen2001 于 2016-7-14 01:56 编辑
fnaviwwo1 发表于 2016-7-4 00:52
我就是说说想法啦,希望能和您一同探讨可行性。


我这些天看了一下这个,用Python应该可以做到想要的,有没有NLTK其实都没太大关系。

1. 语料库 - 文字档
2. 自配一套单词表:比如初中的、高中的等等
3. 单词一个个去搜,找到了就存档:单词加例句

可能不是很有效率 但能够做成想要的。

用NLTK的好处包括
1. 能够从句子中提出单词原型,倒是有个疑问,怎么从原型和变型的词去匹配呢?
2. 可以训练,比如 Mr. Jones, 不要在Mr.的句号断开句子

20160713180017.png (46.74 KB, 下载次数: 0)

20160713180017.png
  • TA的每日心情
    郁闷
    2020-5-16 17:43
  • 签到天数: 49 天

    [LV.5]常住居民I

    2

    主题

    218

    回帖

    3381

    积分

    贡士

    Rank: 6Rank: 6

    积分
    3381
    14
    发表于 2019-5-1 19:43:37 | 只看该作者
    从学英语向学编程转化了,呵呵