Vu le code suivant:Lucene PorterStemmer question
Dim stemmer As New Lucene.Net.Analysis.PorterStemmer()
Response.Write(stemmer.Stem("mattress table") & "<br />") // Outputs: mattress t
Response.Write(stemmer.Stem("mattress") & "<br />") // Outputs: mattress
Response.Write(stemmer.Stem("table") & "<br />") // Outputs: tabl
Quelqu'un pourrait-il expliquer pourquoi le PorterStemmer produit des résultats différents quand il y a un espace dans le mot? Je m'attendais à ce que 'table de matelas' soit dérivé de 'matelas tabl'.
En outre, cela est encore confus par le code suivant:
Dim parser As Lucene.Net.QueryParsers.QueryParser = New Lucene.Net.QueryParsers.QueryParser("MyField", New PorterStemmerAnalyzer)
Dim q As Lucene.Net.Search.Query = parser.Parse("mattress table")
Response.Write(q.ToString & "<br />") // Outputs: MyField:mattress MyField: tabl
q = parser.Parse("""mattress table""")
Response.Write(q.ToString & "<br />") // Outputs My Field:"mattress tabl"
Quelqu'un pourrait-il expliquer pourquoi je reçois des résultats différents de la QueryParser() et la fonction Stem() pour le même mot (s) à l'aide le même analyseur?
Merci, Kyle