Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/neonxp/stemmerru
Стеммер Портера для русского языка на Go
https://github.com/neonxp/stemmerru
Last synced: about 1 month ago
JSON representation
Стеммер Портера для русского языка на Go
- Host: GitHub
- URL: https://github.com/neonxp/stemmerru
- Owner: neonxp
- License: mit
- Created: 2018-05-09T23:58:08.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-05-28T10:24:45.000Z (over 5 years ago)
- Last Synced: 2024-06-21T04:32:51.109Z (7 months ago)
- Language: Go
- Size: 239 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Стеммер Портера для русского языка
[![Build Status](https://travis-ci.org/NeonXP/StemmerRu.svg?branch=master)](https://travis-ci.org/NeonXP/StemmerRu)
[![codecov](https://codecov.io/gh/NeonXP/StemmerRu/branch/master/graph/badge.svg)](https://codecov.io/gh/NeonXP/StemmerRu)Стемминг - процесс получения основы слова из любой его формы. Иными словами, отсекает лишние суффиксы и окончания.
Самое очевидное применение - в полнотекстовом поиске, где нужно, чтобы слово находилось, даже если у него другое окончание.
Этот пакет - реализация [стеммера Портера](https://ru.wikipedia.org/wiki/Стемминг#Стеммер_Портера) для русского языка на Go.
Интерфейс совместим со стеммером https://github.com/caneroj1/stemmer
## Использование
`основа := StemmerRu.Stem("слово")`
Преобразует слово на входе в его основу на выходе
Так же, из библиотеки https://github.com/caneroj1/stemmer взяты следющие методы:
```
// stem a list of words
stems := StemmerRu.StemMultiple(strings)// stem a list of words in place, modifying the original slice
StemmerRu.StemMultipleMutate(strings)
// stem a list of words concurrently. this also stems in place, modifying
// the original slice.
// NOTE: the order of the strings is not guaranteed to be the same.
StemmerRu.StemConcurrent(strings)
```## Пример
```
package mainimport (
"fmt"
"github.com/neonxp/StemmerRu"
)func main() {
fmt.Println(StemmerRu.StemWord("безмолвны") // выведет: безмолвн
fmt.Println(StemmerRu.StemWord("безмолвные") // выведет: безмолвн
fmt.Println(StemmerRu.StemWord("безмолвный") // выведет: безмолвн
fmt.Println(StemmerRu.StemWord("безмолвным") // выведет: безмолвн
fmt.Println(StemmerRu.StemWord("безмолвных") // выведет: безмолвн
}
```