web-dev-qa-db-fra.com

Est-il possible d'utiliser Google BERT pour calculer la similitude entre deux documents textuels?

Est-il possible d'utiliser Google BERT pour calculer la similitude entre deux documents textuels? Si je comprends bien, l'entrée de BERT est censée être une phrase de taille limitée. Certains travaux utilisent BERT pour le calcul de la similarité pour des phrases comme:

https://github.com/AndriyMulyar/semantic-text-similarity

https://github.com/beekbin/bert-cosine-sim

Existe-t-il une implémentation de BERT pour l'utiliser pour des documents volumineux au lieu de phrases comme entrées (documents contenant des milliers de mots)?

5
goodboy

L'ORET n'est pas formé pour déterminer si une phrase suit une autre. C'est juste UNE des tâches GLUE et il y en a une myriade de plus. TOUTES les tâches de COLLE (et superglue) sont éliminées du parc par ALBERT.

BERT (et Albert d'ailleurs) est l'état de l'art absolu dans la compréhension du langage naturel. Doc2Vec ne s'en rapproche pas. Le BERT n'est pas une méthode de sac de mots. C'est un encodeur bidirectionnel basé sur l'attention construit sur le Transformer qui est l'incarnation du papier Google Brain Attention est tout ce dont vous avez besoin . Voir également cette ventilation visuelle du modèle Transformer.

C'est une façon fondamentalement nouvelle de voir le langage naturel qui n'utilise pas les RNN ou les LSTM ou le tf-idf ou quoi que ce soit d'autre. Nous ne transformons plus des mots ou des documents en vecteurs. GloVes: Global Vectors for Word Representations avec LSTMs sont anciens. Doc2Vec est ancien.

BERT est vraiment puissant - comme, passer le test de Turing facilement puissant. Jeter un coup d'œil à

Voir superGLUE qui vient de sortir. Faites défiler vers le bas pour voir à quel point ces tâches sont folles. C'est là que se trouve la PNL.

Bon alors maintenant que nous avons renoncé à l'idée que tf-idf est à la pointe de la technologie - vous voulez prendre des documents et regarder leur similitude? J'utiliserais ALBERT sur Databricks en deux couches:

  1. Effectuez une récapitulation extractive ou abstractive: https://pypi.org/project/bert-extractive-summarizer/ (AVIS QUELLE EST LA TAILLE DE CES DOCUMENTS DE TEXTE - et réduisez votre document à un résumé.

  2. Dans une étape distincte, prenez chaque résumé et effectuez la tâche STS-B de la page 3 GLUE

Maintenant, nous parlons de la technologie Edge absolument saignante ici (Albert est sorti au cours des derniers mois seulement). Vous devrez être extrêmement compétent pour passer à travers cela, mais cela PEUT être fait, et je crois en vous !!

1
birdmw

Ouais. Vous feriez juste chaque partie indépendamment. Pour résumer, vous n'avez guère besoin de faire grand-chose. Regardez simplement sur pypi pour résumer et vous avez plusieurs packages. Je n'ai même pas besoin de m'entraîner. Maintenant, pour la similitude de phrase à phrase, il existe une méthode assez complexe pour obtenir une perte, mais elle est expliquée dans le site Web de GLUE. Cela fait partie du défi (rencontrer la métrique). Déterminer cette distance (m) n'est pas trivial et je pense qu'ils l'appellent "cohérence" mais je ne suis pas sûr.

0
birdmw