【发布时间】:2021-09-02 17:07:50
【问题描述】:
我有一个单词后缀列表,我的目的是将输入的句子分成列表中的后缀。
我的问题是这个列表中的后缀甚至在词根处也将单词分开。例如:
(国际)>>应该是>>(interna _tion _al _ly),我的代码输出是>>(int _erna _tion _al _ly)
注意:我的列表中有“er”
一种解决方案是从句子末尾开始搜索单词。例如,如果匹配列表,代码首先添加字母“y”,然后将其分隔,如果不匹配,则继续添加>“ly”分隔,因为它匹配,然后重置并继续“l”>“al”并将其分开并继续。再这样下去,“erna”就不会匹配和分裂了。
如果它以这种方式搜索,问题就会消失,但我找不到解决方法。
如果你给我指路,我会很高兴的。
sentence = input()
suffixes = ["acy", "ance", "ence", "dom", "er", "or", "ism", "ist",
"ty", "ment", "ness", "ship", "sion", "tion", "ate",
"en", "fy", "ize", "able", "ible", "al",
"esque", "ful", "ic", "ous", "ish", "ive",
"less", "ed", "ing", "ly", "ward", "wise"]
for x in suffixes:
y = " _" + x
sentence = sentence.replace(x, y)
【问题讨论】:
-
欢迎来到 Stack Overflow!请使用tour 并阅读How to Ask。如需调试帮助,您需要提供minimal reproducible example,包括输入(后缀列表)和代码。即使您本身不寻求调试帮助,您至少需要提供后缀列表。例如,我不知道你从哪里得到
tion,因为根是“nation”,而不是“na”。 -
不应该国际化吗?
-
@Matiiss "international" 本身有一个后缀“al”。也就是说,我不知道为什么“tion”被算作后缀,就像我上面写的那样。
-
有点难说...没有看到你的代码,你认为我怎么会知道为什么它被算作后缀而没有看到你的代码?
-
对不起,我忘了添加代码,现在添加