用Unicode语言计算Python3字数

2024-06-16 13:38:03 发布

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

我有包含多种语言的文本。我想要一个字数计数,它只记录使用python3的希腊unicode字符集出现的单词。比如:

wordCount = 0
theText = open(file.txt, 'r')
for word in theText.split():
    if GreekUnicodeCheck(word):
        wordCount += 1
print(wordCount)

我考虑过检查每个单词中是否都有希腊字母,比如:

wordCount = 0
theText = open(file.txt, 'r')
greekChars = ['α', 'β', 'γ', 'δ', 'ε', ...]
for word in theText.split():
    if any(letter in word for letter in greekChars):
        wordCount += 1
print(wordCount)

我认为这应该行得通,但是当你考虑到所有的大写、变音符号等组合时,字符集会变得相当大(我在用古希腊语)。有没有更优雅的解决方案?你知道吗


Tags: intxtforifopen单词wordcountword
2条回答

不过,也不算多。看看this website。所有希腊字母都列在那里,我使用python脚本将其转换为以下列表:

greekSymbols = [\u0394, \u03A9, \u03C0, \u03F4, \u03BB, \u03B8, \u03B1, \u0302, \u0302, \u0302, \u0302, \u03B1, \u03B2, \u03B3, \u03B4, \u03B5, \u03B6, \u03B7, \u03B8, \u03B9, \u03BA, \u03BB, \u03BC, \u03BD, \u03BE, \u03BF, \u03C0, \u03C1, \u03C2, \u03C3, \u03C4, \u03C5, \u03C6, \u03C7, \u03C8, \u03C9, \u0391, \u0392, \u0393, \u0394, \u0395, \u0396, \u0397, \u0398, \u0399, \u039A, \u039B, \u039C, \u039D, \u039E, \u039F, \u03A0, \u03A1, \u03A3, \u03A4, \u03A5, \u03A6, \u03A7, \u03A8, \u03A9, \u03F4]

仅使用Python标准库获取所有可能的希腊字符列表的一种简单方法是使用unicodedata库按字符名搜索。你知道吗

import unicodedata
greekChars = [chr(i) for i in range(0x110000) if 'GREEK' in unicodedata.name(chr(i), '')]

相关问题 更多 >