如何从课文中删除动词、介词、连词等?

2024-10-03 15:25:37 发布

您现在位置:Python中文网/ 问答频道 /正文

基本上,在我的课文中,我只想保留名词,去掉其他词类。

我不认为有任何自动化的方法。如果有请建议。

如果没有自动化的方法,我也可以手动操作,但为此我需要所有可能的说,动词或介词或连词或形容词等的列表。有人可以建议一个可能的来源,我可以得到这些具体的列表。


Tags: 方法列表来源动词手动建议课文名词
2条回答

在手动端。

垃圾场。

https://dumps.wikimedia.org/enwiktionary/20140609/

我只想跳过任何风格的整篇文章,而只看摘要。它包含单词class。祝你好运,格式是个野兽。

要开始使用python:

import xml.etree.ElementTree as ET
wiktionary = file('/path/to/wiktionary.xml')
tree = ET.iterparse(wiktionary.xml)
for event, elem in tree:
    if elem.tag == your_target_tag:
        do magic

应该让你开始。

它比很多其他列表都要有用,但它比我在NLP中使用的任何其他列表都要丰富得多。祝你好运,小心unicode!

您可以使用词性标记符的NLTK部分标记每个单词,然后只保留名词。下面是从NLTK主页获取的NLTK标记器的示例:

>>> import nltk
>>> sentence = """At eight o'clock on Thursday morning
... Arthur didn't feel very good."""
>>> tokens = nltk.word_tokenize(sentence)
>>> tokens
['At', 'eight', "o'clock", 'on', 'Thursday', 'morning',
'Arthur', 'did', "n't", 'feel', 'very', 'good', '.']
>>> tagged = nltk.pos_tag(tokens)
>>> tagged[0:6]
[('At', 'IN'), ('eight', 'CD'), ("o'clock", 'JJ'), ('on', 'IN'),
('Thursday', 'NNP'), ('morning', 'NN')]

在您的例子中,您将保留tagged列表中每个标记以N开头的元素,即所有名词,并丢弃其余的元素。查看complete list of tags;例如,您可能还希望包含外文单词(FW)。

NLTK是免费使用的,它自带的数据集也是免费的。你不必自己建立介词列表等等。

相关问题 更多 >