1

我有以下问题:我创建了一个字典(德语),其中包含单词及其相应的引理。示例:“Lagerbestände”、“Lager-bestand”;“沃恩豪斯”、“沃恩豪斯”;“火车站”、“火车站”

我现在有一个文本,我想检查所有单词的词条。它可能会出现一个不在字典中的单词,例如“Restbestände”。但是“bestände”的引理,我们已经知道了。所以我想取单词的第一部分,这在 dicti 中是未知的,并将其添加到词形化的第二部分并打印出来(或返回它)。示例:“Restbestände”->“Rest-bestand”。(“bestand”取自“Lagerbestände”的引理)

我编写了以下代码:

for limit in range(1, len(Word)): 
    for k, v in dicti.iteritems():
        if re.search('[\w]*'+Word[limit:], k, re.IGNORECASE) != None:
            if '-' in v:
                tmp = v.find('-')
                end = v[tmp:]
                end = re.sub(ur'[-]',"", end)
                Word = Word[:limit] + '-' + end `

但是我遇到了两个问题:

  1. 在单词的末尾,每次“ ”打印出来。我怎样才能避免这种情况?
  2. 这个词的第二部分有时是不正确的——一定有一个逻辑错误。

然而; 你会怎么解决这个问题?

4

1 回答 1

1

在单词的末尾,每次“ ”打印出来。我怎样才能避免这种情况?

必须UNICODE脚本中的任何地方使用。无处不在,无处不在,无处不在。

此外,python RegEx 函数接受re.UNICODE您应该始终设置的标志。德语字母不在 ASCII 集合中,因此 RegEx 有时会混淆,例如在匹配时r'\w'

于 2013-04-19T20:53:43.153 回答