দুটি পাঠ্য নথির মধ্যে কীভাবে সাদৃশ্য গণনা করবেন?


207

আমি কোনও এনএলপি প্রকল্পে কাজ করার দিকে তাকিয়ে আছি, যে কোনও প্রোগ্রামিং ভাষায় (যদিও পাইথন আমার পছন্দ হবে)।

আমি দুটি নথি নিতে এবং সেগুলির অনুরূপ নির্ধারণ করতে চাই।


1
এখানে একই প্রশ্ন stackoverflow.com/questions/101569/... কিছু চমৎকার উত্তর জাদুকরী

উত্তর:


292

এটি করার সাধারণ উপায় হ'ল ডকুমেন্টগুলিকে টিএফ-আইডিএফ ভেক্টরগুলিতে রূপান্তর করা এবং তারপরে তাদের মধ্যে কোসাইন মিলকে গণনা করা। তথ্য পুনরুদ্ধারের উপর কোনও পাঠ্যপুস্তক এটি অন্তর্ভুক্ত। এসএসপি দেখুন। তথ্য পুনরুদ্ধারের পরিচিতি , যা বিনামূল্যে এবং অনলাইনে উপলব্ধ।

পেয়ারওয়াইজ সাদৃশ্যগুলি গণনা করা

টিএফ-আইডিএফ (এবং অনুরূপ পাঠ্য রূপান্তর) পাইথন প্যাকেজগুলি জেনসিম এবং সাইকিট- শিখায় প্রয়োগ করা হয় । পরবর্তী প্যাকেজে, কম্পিউটিং কোসাইন মিলগুলি তত সহজ

from sklearn.feature_extraction.text import TfidfVectorizer

documents = [open(f) for f in text_files]
tfidf = TfidfVectorizer().fit_transform(documents)
# no need to normalize, since Vectorizer will return normalized tf-idf
pairwise_similarity = tfidf * tfidf.T

বা, যদি দস্তাবেজগুলি সরল স্ট্রিং হয়,

>>> corpus = ["I'd like an apple", 
...           "An apple a day keeps the doctor away", 
...           "Never compare an apple to an orange", 
...           "I prefer scikit-learn to Orange", 
...           "The scikit-learn docs are Orange and Blue"]                                                                                                                                                                                                   
>>> vect = TfidfVectorizer(min_df=1, stop_words="english")                                                                                                                                                                                                   
>>> tfidf = vect.fit_transform(corpus)                                                                                                                                                                                                                       
>>> pairwise_similarity = tfidf * tfidf.T 

যদিও Gensim এ ধরণের কাজের জন্য আরও বিকল্প থাকতে পারে।

আরও দেখুন এই প্রশ্নের

[অস্বীকৃতি: আমি সাইকিট-লার্ন টিএফ-আইডিএফ বাস্তবায়নের সাথে জড়িত ছিলাম।]

ফলাফল ব্যাখ্যা

উপরের দিক থেকে, pairwise_similarityএকটি স্কিপি স্পার্স ম্যাট্রিক্স যা আকারে বর্গক্ষেত্রযুক্ত, সারি এবং কলামগুলির সংখ্যার সাথে কর্পাসের নথির সংখ্যার সমান।

>>> pairwise_similarity                                                                                                                                                                                                                                      
<5x5 sparse matrix of type '<class 'numpy.float64'>'
    with 17 stored elements in Compressed Sparse Row format>

আপনি এর মাধ্যমে একটি NumPy অ্যারেতে বিক্ষিপ্ত অ্যারের রূপান্তর করতে পারেন .toarray()বা .A:

>>> pairwise_similarity.toarray()                                                                                                                                                                                                                            
array([[1.        , 0.17668795, 0.27056873, 0.        , 0.        ],
       [0.17668795, 1.        , 0.15439436, 0.        , 0.        ],
       [0.27056873, 0.15439436, 1.        , 0.19635649, 0.16815247],
       [0.        , 0.        , 0.19635649, 1.        , 0.54499756],
       [0.        , 0.        , 0.16815247, 0.54499756, 1.        ]])

ধরা যাক আমরা চূড়ান্ত নথির সাথে ডকুমেন্টটি সর্বাধিক অনুরূপ খুঁজতে চাই, "সাইকিট-শেখা ডকসটি কমলা এবং নীল"। এই নথিতে ইনডেক্স 4 রয়েছে corpus। আপনি এই সারিটির আরগম্যাক্স নিয়ে সর্বাধিক অনুরূপ নথির সূচি খুঁজে পেতে পারেন , তবে প্রথমে আপনাকে 1 এর মুখোশ তৈরি করতে হবে, যা প্রতিটি নথির নিজের মধ্যে মিলের প্রতিনিধিত্ব করে । আপনি এর মাধ্যমে np.fill_diagonal()এবং পরবর্তীটি এর মাধ্যমে করতে পারেন np.nanargmax():

>>> import numpy as np     

>>> arr = pairwise_similarity.toarray()     
>>> np.fill_diagonal(arr, np.nan)                                                                                                                                                                                                                            

>>> input_doc = "The scikit-learn docs are Orange and Blue"                                                                                                                                                                                                  
>>> input_idx = corpus.index(input_doc)                                                                                                                                                                                                                      
>>> input_idx                                                                                                                                                                                                                                                
4

>>> result_idx = np.nanargmax(arr[input_idx])                                                                                                                                                                                                                
>>> corpus[result_idx]                                                                                                                                                                                                                                       
'I prefer scikit-learn to Orange'

দ্রষ্টব্য: একটি বিচ্ছিন্ন ম্যাট্রিক্স ব্যবহারের উদ্দেশ্যটি একটি বৃহত কর্পাস এবং শব্দভাণ্ডারের জন্য (প্রচুর পরিমাণে স্থান) সংরক্ষণ করা। একটি NumPy অ্যারে রূপান্তর পরিবর্তে, আপনি এটি করতে পারেন:

>>> n, _ = pairwise_similarity.shape                                                                                                                                                                                                                         
>>> pairwise_similarity[np.arange(n), np.arange(n)] = -1.0
>>> pairwise_similarity[input_idx].argmax()                                                                                                                                                                                                                  
3

1
@larmans আপনি যদি অ্যারে সামান্য কিছুটা ব্যাখ্যা করতে পারেন তবে সম্ভব হলে কীভাবে আমি এই অ্যারেটি পড়ছি। প্রথম দুটি কলাম প্রথম দুটি বাক্যের মধ্যে মিল?
অ্যাড-সেমি-কলোন

1
@ নাল-হাইপোথিসিস: অবস্থান (i, j) এ, আপনি নথি i এবং নথি j এর মধ্যে মিল খুঁজে পেয়েছেন। সুতরাং, অবস্থানে (0,2) হ'ল প্রথম নথি এবং তৃতীয় (শূন্য-ভিত্তিক সূচক ব্যবহার করে) এর মধ্যে সাদৃশ্য মান, যা আপনি (২,০)-তে খুঁজে পেয়েছেন একই মান, কারণ কোসাইন সাম্য পরিবর্তিত হয়।
ফ্রেড ফু

1
আমি যদি 1 এর ত্রিভুজের বাইরে সমস্ত মানকে গড় হিসাবে চিহ্নিত করি তবে চারটি নথির একে অপরের সাথে কতটা মিল রয়েছে তার একক স্কোর পাওয়ার কি এটি একটি সহজ উপায় হবে? যদি তা না হয় তবে একাধিক নথির মধ্যে সামগ্রিক মিল নির্ধারণের জন্য আরও ভাল উপায় কি হতে পারে?
ব্যবহারকারী 301752

2
@ ব্যবহারকারী ৩০১75৫২: আপনি টিএফ-আইডিএফ ভেক্টরগুলির (যেমন-কে-মানে করবে) এর উপাদান অনুসারে গড় গ্রহণ করতে পারবেন X.mean(axis=0), তারপরে গড় / সর্বোচ্চ / মিডিয়ান (∗) ইউক্লিডিয়ান দূরত্ব গণনা করুন। (∗) আপনার অভিনব যা আছে তা চয়ন করুন।
ফ্রেড ফু

1
@ কুরিয়াস: আমি বর্তমান সাইকিট-লার্ন এপিআই তে উদাহরণ কোডটি আপডেট করেছি; আপনি নতুন কোড চেষ্টা করতে পারেন।
ফ্রেড ফু

87

@ এলারসম্যানের কাছে পরিচিত, তবে কিছুটা প্রাকপ্রসেসিংয়ের সাথে

import nltk, string
from sklearn.feature_extraction.text import TfidfVectorizer

nltk.download('punkt') # if necessary...


stemmer = nltk.stem.porter.PorterStemmer()
remove_punctuation_map = dict((ord(char), None) for char in string.punctuation)

def stem_tokens(tokens):
    return [stemmer.stem(item) for item in tokens]

'''remove punctuation, lowercase, stem'''
def normalize(text):
    return stem_tokens(nltk.word_tokenize(text.lower().translate(remove_punctuation_map)))

vectorizer = TfidfVectorizer(tokenizer=normalize, stop_words='english')

def cosine_sim(text1, text2):
    tfidf = vectorizer.fit_transform([text1, text2])
    return ((tfidf * tfidf.T).A)[0,1]


print cosine_sim('a little bird', 'a little bird')
print cosine_sim('a little bird', 'a little bird chirps')
print cosine_sim('a little bird', 'a big dog barks')

@ রেনেউদ, সত্যিই ভাল এবং স্পষ্ট উত্তর! আমার দুটি সন্দেহ রয়েছে: আমি) টিফিডএফ * টিফিডএফ.এর পরে আপনি যে [0,1] অন্তর্ভুক্ত করেছেন তা কী এবং II) বিপরীত নথির ফ্রিকোয়েন্সি সমস্ত নিবন্ধ বা মাত্র দুটি থেকে তৈরি হয় (বিবেচনা করে যে আপনার 2 এর বেশি রয়েছে) ?
অর্থনীতিবিদ_

2
@ অ্যান্ড্রেস অজুয়েটা [0,1] ম্যাট্রিক্সে মিলের জন্য পজিশন যেহেতু দুটি পাঠ্য ইনপুট একটি 2x2 প্রতিসাম্য ম্যাট্রিক্স তৈরি করবে।
ফিলিপ বার্গস্ট্রোম

1
@ রেনেদ, আপনার সম্পূর্ণ কোডের জন্য আপনাকে ধন্যবাদ। যারা nltk.download () জিজ্ঞাসা করতে ত্রুটির মুখোমুখি হয়েছেন, আপনি সহজেই nltk.download ('পাঙ্কট') করতে পারেন। আপনার সবকিছু ডাউনলোড করার দরকার নেই।
1man

@ রেনেদ পাঠ্যের কোন স্ট্রিং হওয়া উচিত fitএবং কোনটি transform?
জন স্ট্রুড

@ জনস্ট্র্রুড আমি আপনার প্রশ্নটি বুঝতে পারি না, দুঃখিত আপনি কি সংশোধন করতে পারবেন?
রেনেউদ

45

এটি একটি পুরানো প্রশ্ন, তবে আমি পেয়েছি স্প্যাসির সাহায্যে এটি সহজেই করা যায় । দস্তাবেজটি একবার পড়া হয়ে গেলে, similarityডকুমেন্ট ভেক্টরগুলির মধ্যে কোজিনের মিল খুঁজে পেতে একটি সাধারণ এপিআই ব্যবহার করা যেতে পারে।

import spacy
nlp = spacy.load('en')
doc1 = nlp(u'Hello hi there!')
doc2 = nlp(u'Hello hi there!')
doc3 = nlp(u'Hey whatsup?')

print doc1.similarity(doc2) # 0.999999954642
print doc2.similarity(doc3) # 0.699032527716
print doc1.similarity(doc3) # 0.699032527716

2
আমি অবাক হয়েছি কেন ডক 1 এবং ডক 2 এর মধ্যে মিলটি 0.999999954642 এবং 1.0 নয়
জর্দানবেল্ফ

4
@ জর্ডানবেলফ ভাসমান পয়েন্ট সংখ্যা বেশিরভাগ ভাষায় কিছুটা ঘুরে বেড়ায় - কারণ তাদের ডিজিটাল উপস্থাপনায় সীমাহীন নির্ভুলতা থাকতে পারে না। উদাহরণস্বরূপ ফ্লোটিং পয়েন্ট অপারেশনগুলি বা অযৌক্তিক সংখ্যার উত্পাদন করার ক্ষেত্রে সর্বদা ক্ষুদ্র বৃত্তাকার ত্রুটিগুলি ক্রাইপ হয় যার পরে গুণ হয়। এটি স্কেল শর্তাবলী যেমন একটি নমনীয় উপস্থাপনা এর নেতিবাচক।
স্কিপাইলট

2
এই ক্ষেত্রে দূরত্বের ফাংশনটি কী একইরকম পদ্ধতি ব্যবহার করে?
ইকেল

আপনার যদি "এন" সন্ধানের সমস্যা থাকে তবে নীচের পিপটি ইনস্টল করুন স্পেসিটি & অ্যান্ড পাইথন-এম স্প্যাসি ডাউনলোড ডাউনলোড করুন
সাইবারনেটিক


17

সাধারণত দুটি ডকুমেন্টের মধ্যে একটি কোসাইন সাদৃশ্য নথির মিল হিসাবে পরিমাপ করা হয়। জাভা, আপনি ব্যবহার করতে পারেন Lucene (আপনার সংগ্রহে চমত্কার বৃহৎ হলে) অথবা LingPipe এই কাজ করতে। মূল ধারণাটি হ'ল প্রতিটি নথিতে শর্তগুলি গণনা করা এবং ভেক্টর পদটির বিন্দু পণ্য গণনা করা। লাইব্রেরিগুলি এই সাধারণ পদ্ধতির উপর বেশ কয়েকটি উন্নতি করে, যেমন বিপরীতমুখী নথির ফ্রিকোয়েন্সি ব্যবহার করে এবং tf-idf ভেক্টর গণনা করে। যদি আপনি কোপম্লেক্স কিছু করতে চান তবে লিংপাইপ নথিগুলির মধ্যে এলএসএর মিল খুঁজে বের করার পদ্ধতিও সরবরাহ করে যা কোসাইন মিলের চেয়ে ভাল ফলাফল দেয়। পাইথনের জন্য, আপনি এনএলটিকে ব্যবহার করতে পারেন ।


4
মনে রাখবেন যে "এলএসএ মিল নেই"। এলএসএ হ'ল একটি ভেক্টর স্পেসের ডাইমেনিয়ালিটি হ্রাস করার পদ্ধতি (শর্তগুলির চেয়ে বিষয়গুলিকে গতি বাড়ানোর জন্য বা বিষয়গুলির মডেল করা)। BOW এবং tf-idf এর সাথে ব্যবহৃত একই মিল মেট্রিকগুলি এলএসএ (কোসাইন মিল, ইউক্যালিডিয়ান মিল, বিএম 25,…) এর সাথে ব্যবহার করা যেতে পারে।
উইটিকো

16

আপনি যদি খুব নির্ভুল কিছু খুঁজছেন তবে আপনাকে টিএফ-আইডিএফের চেয়ে আরও ভাল সরঞ্জাম ব্যবহার করা উচিত। যে কোনও দুটি টুকরো পাঠের মধ্যে সাদৃশ্য খুঁজে পেতে সর্বজনগ্রাহ্য বাক্য এনকোডার অন্যতম নির্ভুল accurate গুগল প্রাক-প্রশিক্ষিত মডেলগুলি সরবরাহ করেছে যা আপনি কোনও আঁচড় থেকে কোনও প্রশিক্ষণের প্রয়োজন ছাড়াই আপনার নিজের প্রয়োগের জন্য ব্যবহার করতে পারেন। প্রথমত, আপনাকে টেনসরফ্লো এবং টেনসরফ্লো হাব ইনস্টল করতে হবে:

    pip install tensorflow
    pip install tensorflow_hub

নীচের কোডটি আপনাকে কোনও পাঠ্যকে একটি নির্দিষ্ট দৈর্ঘ্যের ভেক্টর উপস্থাপনায় রূপান্তর করতে দেয় এবং তারপরে আপনি ডট পণ্যটি ব্যবহার করতে পারেন তাদের মধ্যে মিল খুঁজে বের করতে

import tensorflow_hub as hub
module_url = "https://tfhub.dev/google/universal-sentence-encoder/1?tf-hub-format=compressed"

# Import the Universal Sentence Encoder's TF Hub module
embed = hub.Module(module_url)

# sample text
messages = [
# Smartphones
"My phone is not good.",
"Your cellphone looks great.",

# Weather
"Will it snow tomorrow?",
"Recently a lot of hurricanes have hit the US",

# Food and health
"An apple a day, keeps the doctors away",
"Eating strawberries is healthy",
]

similarity_input_placeholder = tf.placeholder(tf.string, shape=(None))
similarity_message_encodings = embed(similarity_input_placeholder)
with tf.Session() as session:
    session.run(tf.global_variables_initializer())
    session.run(tf.tables_initializer())
    message_embeddings_ = session.run(similarity_message_encodings, feed_dict={similarity_input_placeholder: messages})

    corr = np.inner(message_embeddings_, message_embeddings_)
    print(corr)
    heatmap(messages, messages, corr)

এবং ষড়যন্ত্রের কোড:

def heatmap(x_labels, y_labels, values):
    fig, ax = plt.subplots()
    im = ax.imshow(values)

    # We want to show all ticks...
    ax.set_xticks(np.arange(len(x_labels)))
    ax.set_yticks(np.arange(len(y_labels)))
    # ... and label them with the respective list entries
    ax.set_xticklabels(x_labels)
    ax.set_yticklabels(y_labels)

    # Rotate the tick labels and set their alignment.
    plt.setp(ax.get_xticklabels(), rotation=45, ha="right", fontsize=10,
         rotation_mode="anchor")

    # Loop over data dimensions and create text annotations.
    for i in range(len(y_labels)):
        for j in range(len(x_labels)):
            text = ax.text(j, i, "%.2f"%values[i, j],
                           ha="center", va="center", color="w", 
fontsize=6)

    fig.tight_layout()
    plt.show()

ফলাফলটি হবে: লেখাগুলির জোড়াগুলির মধ্যে মিলের ম্যাট্রিক্স

আপনি দেখতে পাচ্ছেন যে সর্বাধিক সাদৃশ্যটি তাদের সাথে পাঠ্যগুলির মধ্যে এবং তারপরে অর্থের সাথে তাদের নিকটবর্তী পাঠগুলির মধ্যে।

গুরুত্বপূর্ণ : আপনি প্রথমবার কোডটি চালাবেন এটি ধীর হবে কারণ এটির মডেলটি ডাউনলোড করা দরকার। আপনি যদি আবার এটি মডেল ডাউনলোড করতে বাধা এবং স্থানীয় মডেলটি ব্যবহার করতে চান তবে আপনাকে ক্যাশের জন্য একটি ফোল্ডার তৈরি করতে হবে এবং এটি পরিবেশের পরিবর্তনশীলতে যুক্ত করতে হবে এবং তারপরে প্রথমবার চলার পরে সেই পথটি ব্যবহার করুন:

tf_hub_cache_dir = "universal_encoder_cached/"
os.environ["TFHUB_CACHE_DIR"] = tf_hub_cache_dir

# pointing to the folder inside cache dir, it will be unique on your system
module_url = tf_hub_cache_dir+"/d8fbeb5c580e50f975ef73e80bebba9654228449/"
embed = hub.Module(module_url)

আরও তথ্য: https://tfhub.dev/google/universal-senferences-encoder/2


হাই আপনাকে এই উদাহরণস্বরূপ টিএফ চেষ্টা করার জন্য উত্সাহিত করার জন্য ধন্যবাদ - "এনপি" অবজেক্টটি কোথা থেকে আসা উচিত?
খুলুন ফুড ব্রোকার

1
ইউপিডি ঠিক আছে, আমি প্লটটির জন্য নম্পু, ম্যাটপ্ল্লোব এবং এছাড়াও সিস্টেম টি কে পাইথন বাইন্ডিং ইনস্টল করেছি এবং এটি কাজ করে !!
খুলুন ফুড ব্রোকার

1
সেক্ষেত্রে (লাইন ব্রেকের অভাবের জন্য দুঃখিত): tf আমদানি হিসাবে টেনসরফ্লো আমদানি করুন tensorflow_hub হিসাবে hb আমদানি matplotlib.pyplot হিসাবে plt আমদানি নাম্বার হিসাবে এনপি
দিনুটি

5

আপনাকে শুরু করার জন্য এখানে একটি ছোট্ট অ্যাপ ...

import difflib as dl

a = file('file').read()
b = file('file1').read()

sim = dl.get_close_matches

s = 0
wa = a.split()
wb = b.split()

for i in wa:
    if sim(i, wb):
        s += 1

n = float(s) / float(len(wa))
print '%d%% similarity' % int(n * 100)

4
আপনি যদি প্রচুর পরিমাণে ডক্স নিয়ে কাজ করতে যান তবে ডিফ্লিব খুব ধীর গতির।
Phyo আরকার লুইন

2

আপনি কোসাইন ডকুমেন্ট আদল এই অনলাইন পরিষেবা চেষ্টা করতে পারেন http://www.scurtu.it/documentSimilarity.html

import urllib,urllib2
import json
API_URL="http://www.scurtu.it/apis/documentSimilarity"
inputDict={}
inputDict['doc1']='Document with some text'
inputDict['doc2']='Other document with some text'
params = urllib.urlencode(inputDict)    
f = urllib2.urlopen(API_URL, params)
response= f.read()
responseObject=json.loads(response)  
print responseObject

এপি কি ডিফারেনটিভ সিক্যুয়াল ম্যাচার ব্যবহার করছে? যদি হ্যাঁ, তবে পাইথনের একটি সাধারণ ফাংশন ____________________________________ কাজটি ডিফ্লিব আমদানি থেকে সিকোয়েন্সম্যাচার ডিএফ ইসস্ট্রিংসিমার (ক, খ): অনুপাত = সিকোয়েন্সম্যাচার (কোনও নয়, একটি, খ) .আরটিও () রিটার্ন অনুপাত ______________________________
রুদ্রেশ আজগাঁওকার

2

আপনি যদি টুকরো টুকরো টুকরো শব্দার্থক সাদৃশ্যটি পরিমাপ করতে আরও আগ্রহী হন তবে আমি এই গিটল্যাব প্রকল্পটি একবার দেখে নিন । আপনি এটি সার্ভার হিসাবে চালাতে পারেন, এখানে একটি প্রাক-বিল্ট মডেলও রয়েছে যা আপনি টুকরো টুকরো টুকরোটির মিল খুঁজে নিতে সহজেই ব্যবহার করতে পারেন; যদিও এটি বেশিরভাগ ক্ষেত্রে দুটি বাক্যের মিল খুঁজে পাওয়ার জন্য প্রশিক্ষণপ্রাপ্ত, আপনি এখনও এটি আপনার ক্ষেত্রে ব্যবহার করতে পারেন t এটি জাভাতে লেখা আছে তবে আপনি এটি একটি বিশ্রাম পরিষেবা হিসাবে চালাতে পারেন।

আর একটি অপশন হ'ল ডি কেপ্রো সিম্যারিটি যা পাঠ্যের মিলকে মাপতে বিভিন্ন অ্যালগরিদম সহ একটি গ্রন্থাগার। তবে এটি জাভাতেও লেখা আছে।

কোড উদাহরণ:

// this similarity measure is defined in the dkpro.similarity.algorithms.lexical-asl package
// you need to add that to your .pom to make that example work
// there are some examples that should work out of the box in dkpro.similarity.example-gpl 
TextSimilarityMeasure measure = new WordNGramJaccardMeasure(3);    // Use word trigrams

String[] tokens1 = "This is a short example text .".split(" ");   
String[] tokens2 = "A short example text could look like that .".split(" ");

double score = measure.getSimilarity(tokens1, tokens2);

System.out.println("Similarity: " + score);

2

খুব কম ডেটাসেটের সাথে বাক্যটির মিল খুঁজে পেতে এবং উচ্চ নির্ভুলতা পেতে আপনি পাইথন প্যাকেজের নীচে ব্যবহার করতে পারেন যা প্রাক প্রশিক্ষিত বিআরটি মডেলগুলি ব্যবহার করছে,

pip install similar-sentences

আমি কেবল এটি চেষ্টা করেছি, তবে এটি প্রতিটি বাক্যকে একটি প্রধান একের সাথে মিল দেয় তবে সমস্ত বাক্য তৈরি করার কোনও উপায় আছে। পাঠ্য প্রশিক্ষণের ডেটা এক শ্রেণি হিসাবে তৈরি করা এবং এটি সমস্ত উদাহরণের সাথে কতটা আত্মবিশ্বাসের সাথে মিলছে তার স্কোর পেতে? ?
গুরু তেজা

1
হ্যাঁ, আপনি চেষ্টা করতে পারেন .batch_predict (ব্যাচফাইলে, সংখ্যাঅফপ্রেডিকশন) যা কলাম ['সাজাতে', 'পরামর্শ', 'স্কোর'] সহ ফলাফল.এক্সএল হিসাবে আউটপুট দেবে
শঙ্কর গণেশ জয়রামন

1

সিনট্যাকটিক সাদৃশ্যটির জন্য সাদৃশ্য সনাক্তকরণের 3 সহজ উপায় হতে পারে।

  • Word2Vec
  • দস্তানা
  • টিফিডফ বা কাউন্টভেেক্টরাইজার

সিম্যান্টিক সাদৃশ্যটির জন্য কেউ বের্ট এম্বেডিং ব্যবহার করতে পারেন এবং ডকুমেন্ট এম্বেডিং পেতে আলাদা শব্দের পুলিং কৌশল চেষ্টা করতে পারেন এবং তারপরে নথি এম্বেডিংয়ে কোসাইন মিলটি প্রয়োগ করতে পারেন।

একটি উন্নত পদ্ধতিটি মিল খুঁজে পেতে বার্ট স্কোর ব্যবহার করতে পারে। বার্ট স্কোর

গবেষণামূলক কাগজের লিঙ্ক: https://arxiv.org/abs/1904.09675

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.