使用Google App Engine Python搜索Api对波兰语进行词干分析
我试图在Google App Engine中使用Python搜索Api来搜索波兰文档集,我发现,词干分析功能并没有按预期工作 英语中的“red”一词只有一种形式,尽管波兰语中有不同的形式,基于性别、复数和大小写: 非复数:使用Google App Engine Python搜索Api对波兰语进行词干分析,python,google-app-engine,full-text-search,stemming,google-app-engine-python,Python,Google App Engine,Full Text Search,Stemming,Google App Engine Python,我试图在Google App Engine中使用Python搜索Api来搜索波兰文档集,我发现,词干分析功能并没有按预期工作 英语中的“red”一词只有一种形式,尽管波兰语中有不同的形式,基于性别、复数和大小写: 非复数: | | masculine | feminine | neuter | |--------------|------------|-----------|------------| | Nominative | czerwony
| | masculine | feminine | neuter |
|--------------|------------|-----------|------------|
| Nominative | czerwony | czerwona | czerwone |
| Genitive | czerwonego | czerwonej | czerwonego |
| Dative | czerwonemu | czerwonej | czerwonemu |
| Accusative | czerwony | czerwoną | czerwone |
| Instrumental | czerwonym | czerwoną | czerwonym |
| Locative | czerwonym | czerwonej | czerwonym |
| Vocative | czerwony | czerwona | czerwone |
复数(中性与阴性相同):
正如你所看到的,波兰语中共有12种独特形式的“红色”:“czerwony”、“czerwonym”、“czerwonego”、“czerwonemu”、“czerwona”、“czerwonej”、“czerwonej”、“czerwone”、“czerwoni”、“czerwonymi”、“czerwonych”、“czerwonymi”
我希望从谷歌应用程序引擎stemmer中得到的是,将它们都视为相同的(即“红色”)。让我们通过将端点添加到应用程序引擎应用程序来测试它,其操作如下:
def test_me():
forms = {'czerwony', 'czerwonym', 'czerwonego', 'czerwonemu',
'czerwona', 'czerwoną', 'czerwonej',
'czerwone', 'czerwoni', 'czerwonymi', 'czerwonych',
'czerwonym'}
# turn each form into document and insert to index
index = search.Index(name=str(uuid.uuid4()))
index.put([search.Document(language='pl',
fields=[
search.TextField(name='color', value=form, language='pl')
])
for form in forms])
missing = {}
for form in forms:
# find out what forms can we match to 'form' using ~ stemming operator
results = index.search(query="~" + form).results
matching_forms = set([doc.field('color').value for doc in results])
# and see which we missed
missing[form] = list(forms - matching_forms)
return json.dumps(missing)
结果发现有很多项目没有正确匹配:
"czerwonym": [
"czerwona",
"czerwoną",
"czerwoni",
"czerwonych",
"czerwonej",
"czerwonymi",
"czerwonemu"
],
"czerwonemu": [
"czerwona",
"czerwoną",
"czerwone",
"czerwoni",
"czerwonych",
"czerwonej",
"czerwonego",
"czerwony",
"czerwonym",
"czerwonymi"
],
...
我做错什么了吗?或者我对GAE stemmer有错误的期望
请注意,有一个开源的波兰词干分析器(),它可以处理所有12个表单,没有任何问题。这让我相信,我对GAE stemmer的期望并不过分
"czerwonym": [
"czerwona",
"czerwoną",
"czerwoni",
"czerwonych",
"czerwonej",
"czerwonymi",
"czerwonemu"
],
"czerwonemu": [
"czerwona",
"czerwoną",
"czerwone",
"czerwoni",
"czerwonych",
"czerwonej",
"czerwonego",
"czerwony",
"czerwonym",
"czerwonymi"
],
...