检查字符串是否为英语以外语言的字母顺序

Check whether a string is alphabetical for languages other than english

我正在处理混合了多种语言的文本数据。现在尝试测试 token/string 是否按字母顺序排列,这意味着可能是一个单词。 是否有像 'somestring'.isAlpha() 这样的内置函数来测试一个字符串对于其他语言(葡萄牙语和西班牙语)是否按字母顺序排列?我尝试了 'ó'.isalpha(),其中 returns False

我现在想到的是获取Unicodetable。找到起始和结束字母并测试字母是否在字母表范围内。

这能解决您的问题吗?

>>> u'é'.isalpha()
True

仅供参考,以下示例在 Python 3:

中完美运行
words = ['você', 'quer', 'uma', 'maçã']
for word in words:
    word.isalpha()

在 python 2 中,您可以这样做:

for word in words:
    unicode(word, "utf-8").isalpha()

这个库也不是来自 NLTK,但肯定有帮助。

1) 安装 langdetect 库 $ pip 安装 langdetect

支持 Python 版本 2.6、2.7、3.x。

2) 测试您的代码

>>> from langdetect import detect

>>> detect("War doesn't show who's right, just who's left.")
'en'
>>> detect("Ein, zwei, drei, vier")
'de'

参考Link:

https://pypi.python.org/pypi/langdetect?