폴란드어용 시퀀스 변환기

3832 단어 nlppython
이 튜토리얼에서는 Sequence Transformers를 사용하여 세련된 시퀀스에 대한 임베딩을 생성하는 방법을 보여드리겠습니다. 나는 그들이 어떻게 작동하는지 설명하지 않을 것입니다. 많은 훌륭한 기사가 있습니다.
  • Measuring Text Similarity Using BERT
  • Bert 101

  • 필요한 것은 Huggingface의 Sequence Transformers 라이브러리입니다.

    pip install sequence_transformers
    


    코드는 간단합니다. 라이브러리를 가져오고, 모델을 만들고, 임베딩을 요청합니다.

    from sentence_transformers import SentenceTransformer
    
    model = SentenceTransformer('Voicelab/sbert-base-cased-pl')
    embeddings = model.encode(["Ten tekst zostanie zakodowany"])
    print(embeddings)
    


    그리고 그게 다야. 다음은 모델의 출력입니다.

    [[ 7.74895132e-01  7.00104088e-02 -5.02209544e-01 -2.06187874e-01
      -1.28363922e-01  1.18705399e-01 -1.88303709e-01 -9.09971595e-02
    ...
    


    모델 변경Voicelab/sbert-base-cased-plthis 목록의 모델로 변경하려는 경우 폴란드어로 사전 필터링됩니다.

    이러한 임베딩은 분류, 유사성 검색 등에 사용할 수 있으므로 매우 유용할 수 있습니다.

    사용 예



    문장 목록이 있습니다. 어떤 것이 가장 유사한지 알고 싶습니다. 내가 어떻게 할 수 있니? 짐작할 수 있듯이 임베딩을 사용합니다. 각 문장에 대한 거리 행렬을 계산하고 가장 유사한 것을 찾습니다.

    sentences = [
    "Pożar w mieście. Zgnięło 10 osób."
    ,"Wypadek pod wiaduktem kolejowym."
    ,"W Poniedziałek odbędzie się konferencja naukowa"
    ,"Magia potrafi wzniecać pożary"]
    
    embeddings = model.encode(sentences)
    


    유사성의 척도로 코사인 거리를 사용하겠습니다.

    from sklearn.metrics import pairwise
    
    sns.heatmap(pairwise.cosine_similarity(embeddings, embeddings))
    




    이 히트맵에서 모델이 작동한다는 것을 추론할 수 있으며 사고를 나타내는 pożarwypadek 문장 사이의 유사성을 발견했습니다.

    Pracę przygotowano w ramach realizacji projektu pt.: „Hackathon Open Gov Data oraz stworzenie innowacyjnych aplikacji, z wykorzystaniem technologii GPU”, dofinansowanego przez Ministra Edukacji i Nauki ze środków z budżetu państwa
    w ramach programu "Studenckie koła naukowe tworzą innowacje".

    좋은 웹페이지 즐겨찾기