- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在使用基于规则的算法来提取本地语言中的单词时遇到了一些问题。所以任何懂 python 的人都可以帮助我。
在我的语言中,有些单词通过重复前 2 或 3 个字符(发音)来实现复数化。
例如
Diimaa (root word) ==> Diddiimaa(plural word)
Adii (root word) ==> Adadii(plural word)
所以现在我希望我的程序拒绝第一个示例中的“Did”和第二个示例中的“Ad”
下面是我的代码,没有返回任何结果
`def compput(mm):
vv=1
for i in mm:
if seevowel(i)==1:
inxt=mm.index(i)+1
if inxt<len(mm)-1 and seevowel(mm[inxt])==0:
vv=vv+1
return vv
def stemm_maker(tkn):
for i in range(len(tkn)):
if (i[0] == i[2] and i[1] == i[3]):
stem = i[2:]
if compput(stem) > 0:
return stem
elif ((i[0] == i[2] or i[0]== i[3]) and i[1] == i[4]):
stem = i[3:]
if compput(self) > 0:
return stem
else:
return tkn
print(stem)`
最佳答案
解决这个问题的一种方法是使用正则表达式。
查看这些对(找到 here ):
adadii adii
babaxxee baxxee
babbareedaa bareedaa
diddiimaa diimaa
gaggaarii gaarii
guguddaa guddaa
hahhamaa hamaa
hahapphii happhii
规则似乎是
if the word starts with XY...
then the reduplicated word is either XYXY... or XYXXY...
在正则表达式语言中,这可以表示为
^(.)(.)\1?(?=\1\2)
这意味着:
char 1
char 2
maybe char 1
followed by
char 1
char 2
完整示例:
test = {
'adadii': 'adii',
'babaxxee': 'baxxee',
'babbareedaa': 'bareedaa',
'diddiimaa': 'diimaa',
'gaggaarii': 'gaarii',
'guguddaa': 'guddaa',
'hahhamaa': 'hamaa',
'hahapphii': 'happhii',
}
import re
def singularize(word):
m = re.match(r'^(.)(.)\1?(?=\1\2)', word)
if m:
return word[len(m.group(0)):]
return word
for p, s in test.items():
assert singularize(p) == s
关于用于本地语言的 python 词干词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31986950/
我有以下案例要解决。 在短语中突出显示关键字的 Javascript 方法。 vm.highlightKeywords = (phrase, keywords) => { keywords =
我要匹配文本中的所有美元符号单词。例如,"Hello $VARONE this is $VARTWO"可以匹配$VARONE和$VARTWO。 正则表达式应该是/\$(\w+)/g,但是当我在Dart
在 redux 中,对于将状态作为参数、更改状态并返回新状态的特定操作,您会在 switch 语句中调用什么函数? function reducer(state = DEFAULT_STATE, ac
在 MySQL 5.1 中,我将一个字段命名为“Starting”。但是,每次我使用 SQL 查询时,它都会说无效的 SQL 语法。经过一些谷歌搜索,我发现 STARTING 是一个保留的 SQL 词
我必须使用函数 isIn(secretWord,lettersGuessed) 从列表中找到密码。在下面发布我的代码。 def isWordGuessed(secretWord, lettersGue
一段时间以来,我一直无法找到两个字符串中最长的常用词。首先我想到了用“isspace”函数来做这件事,但不知道如何找到一个常用词。然后我想到了“strcmp”,但到目前为止我只能比较两个字符串。我在想
我目前正在尝试制作一种“单词混合器”:对于两个给定的单词和指定的所需长度,程序应返回这两个单词的“混合”。然而,它可以是任何类型的混合:它可以是第一个单词的前半部分与第二个单词的后半部分相结合,它可以
如果 After 之后(逗号之前)没有 -ing 词,我想匹配它。所以 After 和逗号之间不应该有 -ing 词。 所需的匹配项(粗体): After sitting down, he began
我一直在试验 Stanford NLP 工具包及其词形还原功能。我很惊讶它如何使一些词词形还原。例如: depressing -> depressing depressed -> depressed
js 并尝试根据 [这里] 中的示例代码来做词云:https://github.com/jasondavies/d3-cloud .我想做的是单词的字体大小是基于数组中单词的频率。例如我有 [a,a,
我正在处理一个文本分类问题(在法语语料库上),并且正在试验不同的词嵌入。我对 ConceptNet 提供的内容非常感兴趣,所以我决定试一试。 我无法为我的特定任务找到专门的教程,所以我听取了他们的建议
当我在文本中搜索时,我输入 C-s,然后输入单词,然后一次又一次地输入 C-s,光标前进到找到的单词的下一个位置。问题是,一旦我转到下一个单词,我无法在按钮处编辑迷你缓冲区中的搜索单词,如果我按 Ba
我正在尝试按照以下结构运行这个 maven Hello Word: ├── pom.xml └── src └── Main.java 使用pom.xml设置: 4.0.0
所以,从我可以开始的.. 我正在使用 OCR。该脚本非常适合我的需要。它检测单词的准确性对我来说还可以。 这是结果:附加图像 100% 准确。 from PIL import Image import
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想要改善这个问题吗?更新问题,以便将其作为on-topi
这是细节,但我想知道为什么会这样。 示例代码: Class klasa = Enum.class; for(Type t : klasa.getGenericInterfaces()) Syst
我在用: var header = ""+ "Export HTML to Word Document with JavaScript"; var footer = ""; /
我有一个程序可以像这样将数据打印到控制台(以空格分隔): variable1 value1 variable2 value2 variable3 value3 varialbe4 value4 编辑:
我有一个程序可以像这样将数据打印到控制台(以空格分隔): variable1 value1 variable2 value2 variable3 value3 varialbe4 value4 编辑:
最近我在查看与goliath相关的一些代码时,偶然在Ruby代码中看到了这个词use。 , 中间件等。看起来它不同于include/extend, and require. 有人可以解释为什么存在这个
我是一名优秀的程序员,十分优秀!