我正在寻找一种使用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是我要搜索的单词。我的问题是这被证明是非常困难的,因为这个网站的源代码不一致,所以这个代码适用于某些单词但不适用于其他单词。
我想知道是否有更简单的方法吗?
提前谢谢!
答案 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)并解析它以供您使用。
不要在线完成!它会很慢并且可能出现大量其他问题,包括不一致的返回和连接问题。