我正在使用Python,我想找到一些词的词根,主要指国家。一些演示我需要的东西的例子是:
- 西班牙语应该给我西班牙。
- 英语应该给我英格兰。
- 美国人应该给我美国。 尼日利亚
- 人应该给我尼日利亚。 希腊
- 人(复数)应该给我希腊。 波多黎
- 各人(复数)应该给我波多黎各。 葡萄牙
- 人应该给我葡萄牙。
我已经对NLTK模块的Porter,Lancaster和Snowball词干进行了一些实验。但波特和雪球根本不会改变代币,而兰开斯特则过于激进。例如,美国的兰开斯特词干是"Am",这是相当糟糕的屠宰。我也用WordNet词形还原器玩过一些,但没有成功。
有没有办法获得上述结果,即使它只适用于国家?
您可能想查看 Unicode 的 CLDR(Common Locale Data Repository):http://cldr.unicode.org/
它有可能有用的地区和语言列表,因为您可以使用它们共享的标准ISO 639代码(en,de,fr等)将它们映射在一起。
这是一个有用的 JSON 存储库:
https://github.com/unicode-cldr/cldr-localenames-full/tree/master/main/en
查看那里的 territory.json 和 languages.json 文件。