• Członkowie 43 posty
    25 lipca 2023 18:54

    Cześć forum!

    Tu mój programik w Spacy 4.0:

    spacy.prefer_gpu()
    nlp = spacy.load("pl_core_news_lg")

    doc1 = nlp(text1) # test Mazdy
    doc2 = nlp(text2) # test Renault
    doc3 = nlp(text3) # przygotowanie pizzy
    doc4 = nlp(text4) # test Citroena
    doc5 = nlp(text5) # kaszanka z grilla

    print(doc1.similarity(doc2))
    print(doc1.similarity(doc3))
    print(doc1.similarity(doc4))
    print(doc1.similarity(doc5))
    print(doc3.similarity(doc5))

    I otrzymane odpowiednie wyniki:

    0.9393894390473179
    0.7552346994890619
    0.9758550728077418
    0.846643063214773
    0.8872682531493444

    Test auta i przygotowanie pizzy - podobieństwo 0.75 ?!? :)
    Auto i potrawa mają zbliżone podobieństwo do dwóch tekstów o potrawach ?!? :)

    Czy coś robię nie tak, czy to po prostu tak słabo działa?

  • 4 sierpnia 2023 11:06

    Słabo a może aż tak dobrze działa. Matematycznie są podobne - jako wektory. Ale ty wiesz, że to są słowa należące do różnych kategorii tematycznych i ich podobieństwo nie ma sensu, a model tego nie wie. Możesz się pobawić wywołując wielokrotnie ten kod i zobaczyć w jakim zakresie się te podobieństwa zmieniają. A potem zmienić model pl_core_news_lg na inny i zobaczyć różnice.

    Mimo tak zaawansowanych prac nad AI/ML zrobienie dobrego modelu, nawet dla konkretnego przypadku/domeny, nadal pozostaje wiedzą szamańską i wymaga wielu eksperymentów i doświadczenia - nie ma gotowego przepisu takiego że każdy weźmie, zastosuje i będzie działać idealnie.