gpt4 book ai didi

regex - 我可以使用正则表达式执行词干提取吗?

转载 作者:行者123 更新时间:2023-12-04 17:37:20 24 4
gpt4 key购买 nike

我怎样才能让我的正则表达式只匹配 一个条件确切地?

例如,我有以下正则表达式:

(\w+)(?=ly|es|s|y)

将表达式与单词“glasses”匹配返回:
glasse

正确的匹配应该是:
glass (match should be on 'es' rather than 's' as in the match above)

该表达式应满足任何类型的单词,例如:
films
lovely
glasses
glass

目前正则表达式匹配上述单词为:
film - correct
lovel - incorrect
glasse - incorrect
glas - incorrect

单词的正确匹配应该是:
film
love
glass
glass

我目前遇到的问题是我不确定如何调整我的正则表达式以完全满足 's' 或 'es',因为一个词可能包含两者,例如“glasses”。

更新

感谢您到目前为止的答案。我很欣赏词干提取的复杂性和语言知识的要求。然而,在我的特殊情况下,这些词是有限的(电影、可爱、眼镜和玻璃),因此我只会在上面的表达中遇到这些词和后缀。我对此没有特别的应用。我只是想知道是否可以使用正则表达式。我得出的结论是这是不可能的,但是以下是可能的:

找到或未找到匹配项,例如匹配眼镜但不是玻璃但要匹配电影:
film (match) - (films)
glass (match) - (glasses)
glass (no match) - (glass)

我在想的是,是否有一种方法可以将后缀与末尾的字符串完全匹配。在上面的示例中,“es”匹配玻璃(es)因此条件“s”被丢弃。在玻璃(不匹配)的情况下,条件 's' 被丢弃,因为另一个 's' 在它之前,它不完全匹配。我必须承认我不是 100% 的,所以我的逻辑可能看起来有点不稳定,这只是一个想法。

最佳答案

如果您想进行词干提取,请使用类似 Snowball 的库。 .用正则表达式做你想做的事情是不可能的。特别是,如果没有某种语言知识,您的正则表达式将不可能知道应该从“电影”中删除尾随的“s”而不是“玻璃”。

有大量关于词干提取和词形还原的文献。谷歌是你的 friend 。

关于regex - 我可以使用正则表达式执行词干提取吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14064393/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com