Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengira Kesamaan Kosinus Antara Ayat dalam Python Tanpa Perpustakaan Luaran?

Bagaimana untuk Mengira Kesamaan Kosinus Antara Ayat dalam Python Tanpa Perpustakaan Luaran?

DDD
DDDasal
2024-10-30 07:48:28512semak imbas

How to Calculate Cosine Similarity Between Sentences in Python Without External Libraries?

Mengira Kesamaan Kosinus Antara Rentetan Ayat

Memandangkan dua rentetan yang mewakili ayat, terdapat keperluan untuk mengira persamaan kosinus mereka tanpa menggunakan perpustakaan luaran. Mari kita terokai pelaksanaan Python untuk mencapainya.

Persamaan kosinus mengukur sudut antara dua vektor, biasanya mewakili dokumen atau ayat dalam ruang vektor. Nilai kesamaan kosinus yang tinggi menunjukkan bahawa ayat adalah serupa, manakala nilai yang rendah menunjukkan ia berbeza.

Langkah 1: Tokenisasi dan Vektorisasi

Untuk mengira kesamaan kosinus, kami mesti menukar ayat kepada vektor. Kami menggunakan tokenizer berasaskan perkataan mudah yang membahagikan ayat menjadi perkataan dan mengira kejadiannya:

<code class="python">import re
from collections import Counter

WORD = re.compile(r"\w+")

def text_to_vector(text):
    words = WORD.findall(text)
    return Counter(words)</code>

Langkah 2: Mengira Kesamaan Kosinus

Formula kesamaan kosinus ialah:

cosine = (Numerator) / (Denominator)

di mana:

  • Numerator ialah hasil darab titik bagi dua vektor.
  • Penyebut ialah hasil darab magnitud dua vektor.
<code class="python">import math

def get_cosine(vec1, vec2):
    intersection = set(vec1.keys()) & set(vec2.keys())
    numerator = sum([vec1[x] * vec2[x] for x in intersection])

    sum1 = sum([vec1[x] ** 2 for x in list(vec1.keys())])
    sum2 = sum([vec2[x] ** 2 for x in list(vec2.keys())])
    denominator = math.sqrt(sum1) * math.sqrt(sum2)

    if not denominator:
        return 0.0
    else:
        return float(numerator) / denominator</code>

Langkah 3: Contoh Penggunaan

Menggunakan fungsi di atas, kita boleh mengira persamaan kosinus antara dua ayat:

<code class="python">text1 = "This is a foo bar sentence."
text2 = "This sentence is similar to a foo bar sentence."

vector1 = text_to_vector(text1)
vector2 = text_to_vector(text2)

cosine = get_cosine(vector1, vector2)

print("Cosine:", cosine)</code>

Output akan menunjukkan nilai kesamaan kosinus yang tinggi, menunjukkan bahawa ayat adalah serupa.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Kesamaan Kosinus Antara Ayat dalam Python Tanpa Perpustakaan Luaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn