word2vec dengan tata bahasa yang berbeda

apa pengaruh word2vec jika diterapkan pada bahasa yang berbeda dan tata bahasa yang berbeda? Maksud saya word2vec pertama kali diimplementasikan pada korpus bahasa Inggris, apakah ada pengaruhnya jika kita menggunakan korpus bahasa lain?


person Meru Run    schedule 28.07.2019    source sumber


Jawaban (2)


Word2vec telah diterapkan ke banyak bahasa – dan juga sebagai salah satu bagian dari strategi penerjemahan bahasa ke bahasa, di mana model word2vec dipelajari pada setiap bahasa secara terpisah.

Word2vec tidak bergantung pada tata bahasa Inggris spesifik apa pun. Sebaliknya, ini hanya memerlukan rangkaian kata masukan dalam urutan alaminya.

(Bahasa yang kata-katanya tidak diindikasikan dengan jelas dengan spasi/tanda baca di antaranya mungkin memerlukan tokenisasi yang lebih rumit sebelum urutan kata-katanya diteruskan ke pelatihan word2vec, tapi itu di luar algoritma word2vec itu sendiri, dan setelah diberikan token kata yang tepat, word2vec masih harus bisa untuk mempelajari vektor kata yang memiliki susunan yang diinginkan.)

person gojomo    schedule 28.07.2019

Anda tidak dapat membandingkan penyematan kata dari model yang telah dilatih pada corpora yang berbeda. Anda akan mendapatkan hasil yang tidak masuk akal karena model A tidak memiliki pengetahuan tentang konteks di mana kata-kata dari model B terlihat.

Namun dimungkinkan untuk mengubah kata embeddings dari model A menjadi vektor baru yang ada di ruang vektor model B. Hal ini mirip dengan terjemahan, dan vektor kata baru harus dekat dengan kata-kata di korpus model lain yang serupa. dalam arti kata asli Anda (dengan asumsi bahwa kedua model telah dilatih pada data yang mencakup rentang konteks yang serupa).

Saya telah menulis sebuah paket kecil: transvec, yang akan melakukan ini untuk Anda dengan Python. Ini memungkinkan Anda mengambil vektor kata dari model terlatih untuk satu bahasa dan menerjemahkannya ke dalam vektor kata dalam bahasa yang sama sekali berbeda. Berikut ini contoh konversi kata antara bahasa Inggris dan Rusia, menggunakan model Word2Vec yang telah dilatih sebelumnya:

import gensim.downloader
from transvec.transformers import TranslationWordVectorizer

# Pretrained models in two different languages.
ru_model = gensim.downloader.load("word2vec-ruscorpora-300")
en_model = gensim.downloader.load("glove-wiki-gigaword-300")

# Training data: pairs of English words with their Russian translations.
# The more you can provide, the better.
train = [
    ("king", "царь_NOUN"), ("tsar", "царь_NOUN"),
    ("man", "мужчина_NOUN"), ("woman", "женщина_NOUN")
]

bilingual_model = TranslationWordVectorizer(en_model, ru_model).fit(train)

# Find words with similar meanings across both languages.
bilingual_model.similar_by_word("царица_NOUN", 1) # "queen"
# [('king', 0.7763221263885498)]
person big-o    schedule 16.05.2020