spacy 如何获得带有白色 space 异常的单词列表?

spacy how do I get a list of words with some white space exception?

我正在尝试获取包含单词的列表,但对于某些单词,我希望它们是单个实体而不是两个单独的实体。

例如,

如果我的文字像

文字='olive oil is one of the common ingredients and bell pepper is also quite common'

//期望的输出是

['olive oil','is','one','of','the','common','ingredients','and','bell pepper','is','also' 'quite','common']

我查看了 PhraseMatcher,但 phraseMatcher 将某个短语检测为匹配项,但没有给我上面想要的最终结果。

如果我能设置这样的逻辑就完美了 [{'POS': 'NOUN'}, {'lower':'oil}] 这让我得到任何以 'oil' 结尾的两个组合作为单个元素 像 'xxx oil', 'yyy oil', 'abc oil'.

谁能帮我用示例解决这个问题?

谢谢

在这里,假设你有一个包含所有应该作为名词结尾部分的单词的字典,你可以使用它。 我假设 lower 你的意思是一个词的结尾。您可以对单词的起始键使用类似的实现。

text = 'olive oil is one of the common ingredients and bell pepper is also quite common'

word_index = {
    'oil': 'lower',
    'pepper': 'lower'
}

def change_text(some_text):
    process = some_text.split()
    i = 0
    while i<len(process):
        if process[i] in word_index:
            if word_index[process[i]] == 'lower':
                process[i-1:i+1] = [f'{process[i-1]} {process[i]}']
        i+=1
    return process