0

tout le monde.Comment obtenir des phrases minimales de phrases corpus dont les mots couvre les phrases maximales dans le corpus original?

J'ai un problème d '«optimisation» et je ne sais pas vraiment de quel côté je devrais partir. Voici la description de mon problème:

J'ai un corpus avec beaucoup de phrases de texte. Maintenant, j'ai besoin d'obtenir le minimum de phrases à enregistrer (en tant que fichiers audio) mais en même temps de maximiser le nombre de phrases dans le corpus original formé à partir des phrases enregistrées - plus exactement à partir de mots enregistrés.

Un très court exemple de ce que je dois faire:

Corpus:

  • chien noir
  • chat gris
  • grand chien
  • souris grise
  • grand souris

Exemple de peines minimales pour couvrir le maximum du corpus d'origine:

  • chien noir
  • grosse souris
  • chat gris

A partir de 3 phrases (et leurs paroles) ci-dessus nous sommes capables de former le reste des phrases dans le corpus. Bien sûr, je cherche une méthode optimale du point de vue informatique, car mon corpus contient des milliers de phrases. Connaissez-vous une méthode appropriée pour ce problème?

Merci pour vos réponses!

Morphid

+0

On dirait que vous avez besoin d'un paramètre supplémentaire ici pour spécifier combien vous voulez échanger un mot supplémentaire dans votre liste minimale afin de couvrir plus de mots dans le corpus. Par exemple pourquoi pas "souris chien noir"? – samgak

+1

Cela ressemble au problème de couverture de l'ensemble: https: //en.wikipedia.org/wiki/Set_cover_problem – m69

+0

Merci pour vos réponses :-) @samgak Je dois enregistrer des phrases exactes de mon corpus car j'ai besoin de garder leur format (à cause de l'expérience future, pas de "générer" un minimum de phrases pour couvrir l'ensemble corpus) – Morphid

Répondre

0

Si votre corps est aussi simple que vous montrer, et vous ne vraiment pas besoin de créer des phrases, vous pouvez simplement calculer les unigrammes. Si c'est plus complexe, exécutez une forme de modélisation de sujet. La modélisation de sujet retournera les mots communs à travers le corpus. Vous devrez avoir votre corpus dans un ensemble de documents. Dans votre cas, chaque «document» pourrait être une phrase. Un bon algorithme de modélisation de sujet est appelé "Latent Dirichlet Allocation" (LDA).

Pour un document technique sur le LDA, voir Latent Dirichlet Allocation.

Pour un article avec un exemple de code Python utilisant la bibliothèque gensim, voir Experiments on the English Wikipedia.

L'article et l'exemple de code suivants par Jordan Barber, Latent Dirichlet Allocation (LDA) with Python, utilise NLTK pour créer un corpus et un gensim pour LDA. Ce code est plus adaptable à d'autres applications que le code de Wikipedia.

+0

Merci beaucoup pour votre réponse! Comme vous l'avez mentionné, unigramme peut être suffisant dans le cas des données que j'ai, mais LDA est intéressant pour moi et je vais l'explorer davantage et essayer de l'appliquer. Merci. – Morphid