2010-03-04 23 views
1

Merci d'avoir arrêté de lire ma question :) c'est un endroit très doux plein de GRANDS peuples!Comment faire une représentation de concept à l'aide d'un sac de mots

J'ai une question à propos de "créer des phrases avec des mots". NON NON il n'est pas la grammaire anglaise :)

Laissez-moi vous expliquer, si je sac de mots comme

"person apple apple person person a eat person will apple eat hungry apple hungry" 

et il peut générer une sorte de phrase suivante

"hungry person eat apple" 

Je don Dans quel domaine ce sujet se rapporte-t-il? Où dois-je essayer de trouver une réponse? J'ai essayé de rechercher google mais je n'ai trouvé que des trucs de grammaire anglaise :)

Tout corps là qui peut me dire quel algo peut travailler dans ce problème? ou tout programme

Merci

P.S: Il est pas une cession :) si ce serait je voudrais demander le code source! Je ne sais même pas dans quel domaine je devrais chercher :)

+1

Vous devez clarifier votre objectif, car cela vous aidera à vous orienter dans ce vaste domaine appelé linguistique. Le titre utilise l'expression "représentation conceptuelle" (ce qui implique des inquiétudes sur la sémantique), mais la question elle-même ne semble concerner que la production d'une phrase quelque peu aléatoire (avec l'indication implicite qu'elle devrait être grammaticalement correcte). Donc la question est a) est-ce que le sens importe (ou est-ce un peu comme ce jeu que les enfants jouent pour créer des phrases amusantes)? b) la grammaire importe-t-elle, du tout ou approximativement? ... – mjv

+0

... Qu'est-ce qui motive la production des phrases (sélection aléatoire, sélection aléatoire au sein d'une catégorie POS, relations sémantiques ...)? – mjv

+0

+1 pour vos commentaires. Oh mec tu es rock! Je ne savais pas que c'est un vaste domaine. Tout d'abord, comme je l'ai dit, je ne connais pas grand-chose à ce domaine, donc je ne suis pas sûr que le titre de la question soit vraiment bon. Pour moi, la matière et la grammaire sont la deuxième priorité. Donc, y a-t-il un algo ou un api pour accomplir cette tâche? Si vous avez des questions s'il vous plaît demander, je serai heureux de répondre – user238384

Répondre

-1

Je pense que vous pourriez penser à Generative Grammars, mais je ne suis pas trop sûr.

+2

"grammaire générative" ne se réfère pas à "générer des phrases", il se réfère à l'idée que le langage est hiérarchique et peut être divisé en constituants basés sur un ensemble de règles - règles sur les catégories syntaxiques et non individuelles – poundifdef

3

Les analyseurs linguistiques les plus performants aujourd'hui sont basés sur des statistiques, et c'est (par exemple) le fonctionnement de Google Traduction. Ce que vous faites est d'obtenir un grand corpus sémantiquement balisé et commencer à marcher sur le tableau des mots. L'ensemble des phrases anglais valides linguistiquement est plus grand que celui de la grammaire générative (une approche plus ancienne), mais un grand corpus vous procurera un grand nombre de modèles de phrases viables. Vous pouvez faire des phrases de votre sac par n'importe quelle technique de traversée de données, de la marche aléatoire aux algorithmes génétiques. Faites-nous savoir ce que vous faites!

est ici un ensemble de ressources pour commencer: Stanford statistical natural language processing and corpus-based computational linguistics resources

En réponse au commentaire OP ci-dessous: Pour générer une phrase, vous devez avoir une représentation abstraite de phrases valides. Un exemple simple est SUBJECT VERB OBJECT dans la grammaire générative. Vous pouvez aussi obtenir OBJET OBJET ADJECTIF SUJET ainsi. Le problème est que vous pouvez le remplir avec un non-sens grammaticalement correct, comme "J'ai mangé une pomme affamée". Ce que l'analyse statistique vous dira, c'est que "pomme affamée" est une combinaison que vous ne voyez presque jamais - il est très improbable qu'elle apparaisse en anglais (votre corpus), et donc sans même avoir à connaître le sens que je peux éliminer phrase. Si vous écrivez un vérificateur de grammaire, vous pourriez souligner que cette paire de mots est discutable. Puisque vous écrivez un générateur de phrases, vous auriez juste besoin d'inverser ce processus - une simple possibilité est simplement de générer un grand nombre de combinaisons aléatoires des mots et ensuite les vérifier par rapport à votre base de données pour voir si le mot les chaînes répondent toutes à un certain seuil de probabilité, comme 80%. Une autre option consiste à traiter les chaînes de mots individuels comme des gènes dans un algorithme génétique, et après quelques générations, des chaînes comme «pomme affamée» disparaîtront au profit de gènes plus efficaces comme la «pomme rouge». Avec un petit "mot sac" comme celui que vous avez mentionné, vous n'avez pas besoin d'avoir cette fantaisie, vous pouvez probablement tester toutes les phrases possibles avec < n numéros sans aucun problème. Vous avez seulement besoin de faire preuve d'imagination dans votre algorithme de recherche de phrase lorsque votre mot sac est trop énorme pour calculer exhaustivement.

Le lien ci-dessus contient plusieurs corpus que vous pouvez télécharger et utiliser, ainsi que de nombreux exemples de programmes pour marquer vos corpus.Mais vous voulez rester simple si ce n'est qu'un projet de curiosité oiseuse. Permettez-moi de faire une autre suggestion - l'un des plus grands corpus disponibles est l'index du Web de Google. Toute phrase ou phrase que vous mettez entre guillemets dans une recherche google renverra un certain nombre de résultats. "pomme rouge" renvoie plus d'un million de coups, par exemple, alors que "pomme affamée" n'en rapporte que 11 000. Vous pouvez l'utiliser pour créer un petit balisage statistique pour la validité de vos phrases avec un petit mot sac. Si le processus statistique s'avère trop compliqué à mettre en œuvre, pensez plutôt à baliser votre mot-clé avec des parties de discours (recherche de balisage de partie de discours) et fournissez à votre programme une variété de gabarits de phrases abstraites - vous aura toujours des phrases comme "Une personne mange une pomme affamée" mais en fonction de vos besoins cela peut suffire. :)

P.S. Sans le mot "an" dans votre sac de mots, vous avez l'air limité à la grammaire Tarzan et au monde des pommes mangeuses :)

+0

pour ta réponse. J'ai quelques connaissances sur les choses de la langue (lsi, vsm, etc.) aussi des trucs génétiques. Mais je n'ai pas très bien compris votre réponse. Y a-t-il un échantillon de corpus marqué que je peux voir? Pour google translate, il suffit de voir les mots les traduire à l'aide du dictionnaire. Si vous mettez ma chaîne dans google, cela ne génèrera pas de sentense. Pouvez-vous s'il vous plaît expliquer plus avec un exemple ?? – user238384