Hướng dẫn how do you find the similarity between two words in python? - Làm thế nào để bạn tìm thấy sự giống nhau giữa hai từ trong python?

Để bổ sung cho các câu trả lời khác:

Bạn có thể giới thiệu cả hai câu và sau đó xem cosine similarity giữa các biểu diễn tính năng của chúng.

Để giới thiệu văn bản, có nhiều phương pháp bạn có thể sử dụng; Từ các toán tử dựa trên đếm đơn giản như TFIDF đến Word nhúng như Word2VEC hoặc các mô hình ngôn ngữ phức tạp hơn như Bert.

Thư viện TextWiser có thể có ích nếu bạn muốn thử nghiệm một số phương thức tính năng văn bản bao gồm các phép biến đổi của chúng để giảm kích thước như SVD, LDA, UMAP, v.v.

Đây là một ví dụ sử dụng:


# Conceptually, TextWiser is composed of an Embedding, potentially with a pretrained model,
# that can be chained into zero or more Transformations
from textwiser import TextWiser, Embedding, Transformation, WordOptions, PoolOptions

# Data
documents = ["Some document", "More documents. Including multi-sentence documents."]

# Model: TFIDF `min_df` parameter gets passed to sklearn automatically
emb = TextWiser[Embedding.TfIdf[min_df=1]]

# Model: TFIDF followed with an NMF + SVD
emb = TextWiser[Embedding.TfIdf[min_df=1], [Transformation.NMF[n_components=30], Transformation.SVD[n_components=10]]]

# Model: Word2Vec with no pretraining that learns from the input data
emb = TextWiser[Embedding.Word[word_option=WordOptions.word2vec, pretrained=None], Transformation.Pool[pool_option=PoolOptions.min]]

# Model: BERT with the pretrained bert-base-uncased embedding
emb = TextWiser[Embedding.Word[word_option=WordOptions.bert], Transformation.Pool[pool_option=PoolOptions.first]]

# Features
vecs = emb.fit_transform[documents]

Bạn có thể dễ dàng chuyển đổi giữa các tùy chọn nhúng và chuyển đổi khác nhau và xem chúng tác động đến các tác vụ hạ nguồn của bạn như thế nào, trong trường hợp của bạn, sự giống nhau giữa các câu.

Lưu ý rằng bạn thậm chí có thể xâu chuỗi các phép biến đổi; ví dụ: NMF theo sau là hoạt động SVD.

Tuyên bố miễn trừ trách nhiệm: Tôi là thành viên của nhóm TextWiser.

Dưới đây là bản sao mã từ tài liệu chính thức theo liên kết của Alva - //www.sbert.net/docs/usage/semantic_textual_similarity.html

Đây là mã trong Google Colab nằm ở đây - //colab.research.google.com/drive/1ak0xrn3zwf4rh2ytvo1Avgh-erlhede?usp=shared

from sentence_transformers import SentenceTransformer, util
model = SentenceTransformer['all-MiniLM-L6-v2']
    
# Two lists of words
word1 = ['cat',
         'man',
         'movie',
         'friend']
    
word2 = ['kitten',
          'boy',
          'film',
          'love']
    
#Compute embedding for both lists
embeddings1 = model.encode[word1, convert_to_tensor=True]
embeddings2 = model.encode[word2, convert_to_tensor=True]
  
#Compute cosine-similarities
cosine_scores = util.cos_sim[embeddings1, embeddings2]
    
 #Output the pairs with their score
for i in range[len[word1]]:
        print["{} \t\t {} \t\t Score: {:.4f}".format[word1[i], word2[i], cosine_scores[i][i]]]

Sử dụng mã trên trong colab, tôi có đầu ra sau

cat          kitten      Score: 0.7882
man          boy         Score: 0.5843
movie        film        Score: 0.8426
friend       love        Score: 0.4168

Kết luận của tôi là đối với sự tương đồng trong các từ không liên quan đến ngữ cảnh, điểm ngưỡng trên 75% hoạt động khá tốt; Nếu bạn cung cấp một số bối cảnh, mô hình này sẽ hoạt động tốt hơn nữa.

Jain khắc nghiệt

Làm thế nào để bạn tìm thấy sự tương đồng giữa các chuỗi trong Python?

Nhập chuỗi def phù hợp [a, b]: a, b = a. thấp hơn [], b ..

So sánh lấy hai chuỗi và trả về một số nguyên dương ..

Bạn có thể chỉnh sửa biến cho phép AL trong so sánh, nó cho biết phạm vi chúng ta cần tìm kiếm lớn như thế nào. ....

Chiều dài cho biết kết quả bạn muốn có bao nhiêu mục, tương tự như chuỗi đầu vào ..

Làm cách nào để tìm thấy sự tương đồng về văn bản?

Lấy một dòng câu, biến nó thành một vector ..

!wget -P /root/input/ -c "//s3.amazonaws.com/dl4j-distribution/GoogleNews-vectors-negative300.bin.gz"

Lấy nhiều hình phạt khác và thay đổi chúng thành các vectơ ..

Câu giao ngay với khoảng cách ngắn nhất [Euclide] hoặc góc nhỏ nhất [độ tương tự cosin] trong số đó ..

pip install gensim
pip install scikit-learn

Chúng tôi ngay lập tức nhận được một tiêu chuẩn về sự tương đồng ngữ nghĩa kết nối các câu ..

Làm thế nào để bạn tìm thấy sự giống nhau của một từ?

from gensim.models import KeyedVectors

from sklearn.metrics.pairwise import cosine_similarity

print['Imported Successfully!']

Kiểm tra tài liệu của bạn để biết sự tương đồng với các nguồn trực tuyến.

Trên tab Trang chủ, chọn Trình chỉnh sửa ..

  • Trong khung trình chỉnh sửa, tìm sự tương đồng và nhấp hoặc nhấn kiểm tra độ tương tự với các nguồn trực tuyến. ....
  • Để xem lại các đoạn, nhấp hoặc nhấn các điểm tương đồng được xem xét ..
  • Làm thế nào để bạn tìm thấy sự giống nhau của hai chuỗi?

word_vectors = KeyedVectors.load_word2vec_format['/root/input/GoogleNews-vectors-negative300.bin.gz', binary=True]

v_apple = word_vectors['banana']

v_mango = word_vectors['mango']

cosine_similarity[[v_apple],[v_mango]]

Cách để kiểm tra sự giống nhau giữa bất kỳ điểm dữ liệu hoặc nhóm nào là tính toán khoảng cách giữa các điểm dữ liệu đó. Trong dữ liệu văn bản cũng vậy, chúng tôi kiểm tra sự giống nhau giữa các chuỗi bằng cách tính khoảng cách giữa một văn bản này sang văn bản khác.

Explanation:

  • Trong bức ảnh này, chúng tôi sẽ xây dựng một công cụ NLP sẽ hiển thị sự tương đồng giữa hai từ đã cho.
  • Trong dòng 3 và dòng 4, chúng tôi đã cố gắng lấy các vectơ từ cho
    from sentence_transformers import SentenceTransformer, util
    model = SentenceTransformer['all-MiniLM-L6-v2']
        
    # Two lists of words
    word1 = ['cat',
             'man',
             'movie',
             'friend']
        
    word2 = ['kitten',
              'boy',
              'film',
              'love']
        
    #Compute embedding for both lists
    embeddings1 = model.encode[word1, convert_to_tensor=True]
    embeddings2 = model.encode[word2, convert_to_tensor=True]
      
    #Compute cosine-similarities
    cosine_scores = util.cos_sim[embeddings1, embeddings2]
        
     #Output the pairs with their score
    for i in range[len[word1]]:
            print["{} \t\t {} \t\t Score: {:.4f}".format[word1[i], word2[i], cosine_scores[i][i]]]
    
    3 và
    from sentence_transformers import SentenceTransformer, util
    model = SentenceTransformer['all-MiniLM-L6-v2']
        
    # Two lists of words
    word1 = ['cat',
             'man',
             'movie',
             'friend']
        
    word2 = ['kitten',
              'boy',
              'film',
              'love']
        
    #Compute embedding for both lists
    embeddings1 = model.encode[word1, convert_to_tensor=True]
    embeddings2 = model.encode[word2, convert_to_tensor=True]
      
    #Compute cosine-similarities
    cosine_scores = util.cos_sim[embeddings1, embeddings2]
        
     #Output the pairs with their score
    for i in range[len[word1]]:
            print["{} \t\t {} \t\t Score: {:.4f}".format[word1[i], word2[i], cosine_scores[i][i]]]
    
    4.
  • Trong dòng 5, chúng tôi đã sử dụng hàm
    from sentence_transformers import SentenceTransformer, util
    model = SentenceTransformer['all-MiniLM-L6-v2']
        
    # Two lists of words
    word1 = ['cat',
             'man',
             'movie',
             'friend']
        
    word2 = ['kitten',
              'boy',
              'film',
              'love']
        
    #Compute embedding for both lists
    embeddings1 = model.encode[word1, convert_to_tensor=True]
    embeddings2 = model.encode[word2, convert_to_tensor=True]
      
    #Compute cosine-similarities
    cosine_scores = util.cos_sim[embeddings1, embeddings2]
        
     #Output the pairs with their score
    for i in range[len[word1]]:
            print["{} \t\t {} \t\t Score: {:.4f}".format[word1[i], word2[i], cosine_scores[i][i]]]
    
    5 và tính toán độ tương tự bằng cách truyền hai vectơ.

Bạn sẽ thấy một đầu ra tương tự như dưới đây.

array[[[0.63652116]], dtype=float32]

Trên đây có nghĩa là cả hai từ tương tự khoảng 63%.

Lưu ý: Nếu bạn cố gắng lấy các vectơ cho các từ không có trong từ vựng, bạn sẽ gặp lỗi. Bạn có thể giải quyết điều này bằng cách đào tạo mô hình bằng bộ dữ liệu của bạn.

Đây là cách học tập chuyển tiếp được thực hiện trong NLP. Nếu bạn muốn tìm hiểu thêm về học tập chuyển tiếp, hãy xem các bức ảnh dưới đây:

  1. Học chuyển là gì và tại sao nó cần thiết?
  2. Các chiến lược để sử dụng học tập chuyển nhượng là gì?
  3. Cách sử dụng mô hình học sâu được đào tạo trước

Người đóng góp

Jain khắc nghiệt

Làm thế nào để bạn tìm thấy sự tương đồng giữa các chuỗi trong Python?

Nhập chuỗi def phù hợp [a, b]: a, b = a. thấp hơn [], b ...
So sánh lấy hai chuỗi và trả về một số nguyên dương ..
Bạn có thể chỉnh sửa biến cho phép AL trong so sánh, nó cho biết phạm vi chúng ta cần tìm kiếm lớn như thế nào. ....
Chiều dài cho biết kết quả bạn muốn có bao nhiêu mục, tương tự như chuỗi đầu vào ..

Làm cách nào để tìm thấy sự tương đồng về văn bản?

Introduction..
Lấy một dòng câu, biến nó thành một vector ..
Lấy nhiều hình phạt khác và thay đổi chúng thành các vectơ ..
Câu giao ngay với khoảng cách ngắn nhất [Euclide] hoặc góc nhỏ nhất [độ tương tự cosin] trong số đó ..
Chúng tôi ngay lập tức nhận được một tiêu chuẩn về sự tương đồng ngữ nghĩa kết nối các câu ..

Làm thế nào để bạn tìm thấy sự giống nhau của một từ?

Kiểm tra tài liệu của bạn để biết sự tương đồng với các nguồn trực tuyến..
Trên tab Trang chủ, chọn Trình chỉnh sửa ..
Trong khung trình chỉnh sửa, tìm sự tương đồng và nhấp hoặc nhấn kiểm tra độ tương tự với các nguồn trực tuyến.....
Để xem lại các đoạn, nhấp hoặc nhấn các điểm tương đồng được xem xét ..

Làm thế nào để bạn tìm thấy sự giống nhau của hai chuỗi?

Cách để kiểm tra sự giống nhau giữa bất kỳ điểm dữ liệu hoặc nhóm nào là tính toán khoảng cách giữa các điểm dữ liệu đó.Trong dữ liệu văn bản cũng vậy, chúng tôi kiểm tra sự giống nhau giữa các chuỗi bằng cách tính khoảng cách giữa một văn bản này sang văn bản khác.calculating the distance between those data points. In textual data as well, we check the similarity between the strings by calculating the distance between one text to another text.

Bài Viết Liên Quan

Chủ Đề