如何区分python中的英语句子语法?

时间:2015-08-06 20:50:28

标签: python dictionary web-crawler

我正在寻找一种使用python程序区分英语语法(动词,名词,形容词等)语法的有效方法。

目前我实现这一目标的方法是让程序通过dicionary.com的源代码阅读,并使用一些切割查找信息

url = "http://dictionary.reference.com/browse/" + x + "?s=t"]
request = urllib2.Request(url)
handle = urllib2.urlopen(request)
content = handle.read()

# cut the html code to the correct spot
splitted_page = content.split(b"<span class=\"dbox-pg\">", 1)
splitted_page = splitted_page[1].split(b"</span>", 1)
word_type.append(splitted_page)

其中x是我要搜索的单词。我的问题是这被证明是非常困难的,因为这个网站的源代码不一致,所以这个代码适用于某些单词但不适用于其他单词。

我想知道是否有更简单的方法吗?

提前谢谢!

1 个答案:

答案 0 :(得分:1)

如果不使用NLTK,我会去识别特定的后缀以查看其中的内容。 只是一个布局。

因此,将一个句子分成单词并查看哪些单词以“ed”,“ing”,“tion”,“ay”“et”“ct”“ee”“ly”“ful”“less”“结尾“等等。

简短形式“n.t”“。”“”'重新'“'d”......

支持一些像CMUDict这样的轻量级词典,它只包含单词及其各自的发音。

在某处有一个不规则动词的列表和通常的形式,如“am”“is”“are”“was”“were”“have”“has”“will”“shall”“do”“does”“did”和他们的消极。

使用这个系统,你可以看到你是否有英文单词。

从句子中的后缀和位置,你可以很好地猜测它在句子中的作用。

否则,即使你有单独的动词和名词列表,通常很难说(只有通过查看这个词)是名词还是动词。 所以在任何情况下你都必须有一个上下文管理器。 (如果您希望您的猜测是正确的98%)。

搜索任何英语词典(如果您不使用CMUDict)并解析它以供您使用。

不要在线完成!它会很慢并且可能出现大量其他问题,包括不一致的返回和连接问题。