Wpis z mikrobloga

Czy ktoś z was nie korzystał/generował sobie jakiegoś słownika polskich liczebników?

1 jeden
2 dwa
3 trzy
...
100000 sto tysięcy
...
542 875 pięćset czterdzieści dwa tysiące osiemset siedemdziesiąt pięć
...
1000000000 miliard
powiedzmy właście z zakresu 0-10^9 :)

Modyfikuję słownik #morfologik.a dla #solr.a. Udało mi się już zmodyfikować go na tyle, że możliwe jest wyszukiwanie za pomocą odmienionych słów. To właśnie daje stemming z morfologika, np. "Gry o tron" bez problemu wyszuka "Gra o tron", natomiast problem był z polskimi literami, jeżeli zamiast "Opowieść Murasaki" ktoś wpisał "opowieści murasaki", to jeszcze dawało radę znaleźć... ale jeżeli ktoś wpisał "opowiesci murasaki" (zła odmiana+bez polskich liter), to już był problem... był, bo zmodyfikowałem odpowiednio słownik (będzie na githubie ;) )

Teraz sobie pomyślałem, że fajnie będzie jak zapytanie "50 twarzy greya" będzie w stanie wyszukać "Pięćdziesiąt twarzy Greya"... do tego potrzeba tylko zrobić miks słownika którego szukam, z tym, którego zrobiłem :)


#programowanie #morfologik #polski #jezykpolski #webdev #spistresci.pl
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Jeśli nie potrzebujesz liczebników porządkowych, to jest to przecież 5 minut roboty. Liczby 1-19 i później dziesiątki 20-90 zapisz sobie do tablicy. A reszta to jest tylko miks słow [1-9], [20-90] [tysiąc|tysiące|tysięcy] [milion|miliony|milionów] […]
  • Odpowiedz
@noisy: kiedyś pisałem funkcjonalność do tworzenia "słownie" (np. na fakturę), ale zastanawiam się, czy w Twoim przypadku nie potrzeba by jeszcze tych liczebników jakoś odmieniać (pięćdziesiąt, pięćdziesięciu itd) - chyba że w solrze masz już możliwość spiąć je wtedy z istniejącym już słownikiem
  • Odpowiedz
@ppawel: nie do końca, ponieważ tutaj chodzi o zamianę liczby na podstawową formę. Słownik morfologika posiada już m.in. wpisy:

pięć pięć num:pl:nom.acc.voc:m2.m3.f.n2:rec
pięćdziesiąci pięćdziesiąty adj:pl:nom.voc:m1.p1:pos
pięćdziesiąt pięćdziesiąt num:pl:nom.acc.voc:m2.m3.f.n2:rec
pięćdziesiąta
  • Odpowiedz
@noisy: hm... no właśnie korzystając z takiego generatora zapisującego "liczbę słownie" (i doklejając to coś na końcu ;) ) otrzymasz całą serię wpisów:

1 jeden num:pl:nom.acc.voc:m2.m3.f.n2:rec
2 dwa num:pl:nom.acc.voc:m2.m3.f.n2:rec
  • Odpowiedz
@ppawel: właśnie zdałem sobie sprawę, że pewnie może być problem z liczbami, które rozbijają się na dwa wyrazy lub więcej. (format słownika)
  • Odpowiedz
jeszcze chcę zrobić małe testy jakich liczebników tak naprawdę potrzebuję... 10^9 dodatkowych lini w słowniku cholernie by go spowolniło. Dotychczasowy słownik miał "tylko" 4 mln lini.
  • Odpowiedz