8
votes

Y a-t-il un moyen assez simple pour un script de dire (du contexte) si "elle" est un pronom possessif?

J'écris un script pour inverser tous les genders dans un morceau de texte, tous les mots sexués sont échangés - "l'homme" est échangé avec "femme", "elle" est échangée avec "il", etc. mais il y a une ambiguïté quant à savoir si "elle" devrait être remplacée par "lui" ou "son".


1 commentaires

Votre script est-il jusqu'à présent une substitution de texte simple, ou effectuez-vous une analyse grammaticale?


9 Réponses :


2
votes

Je ne pense pas. Vous pouvez vérifier si le pronom possédant est suivi d'un nom ou d'un adjectif et concluait ainsi que c'est bien un pronom possédant. Mais bien sûr, vous devriez écrire un script capable de le faire et même si vous aviez une méthode, ce serait toujours faux dans d'autres cas. Un algorithme de correspondance de modèle simple ne vous aidera pas ici.

Bonne chance avec l'analyse de ce: http://fr.wikipedia.org/wiki/x -bar_theory


1 commentaires

Essayer de mettre en œuvre un analyseur basé sur la théorie X-Bar sera probablement le travail d'une vie .. :)



3
votes

g'day,

Il s'agit d'un de ces cas où vous pourriez investir une quantité d'un temps démesuré dans la solution automatique et terminer avec un résultat que vous allez avoir à vérifier quand même.

Je suggérerais de rendre votre script Insérer un texte qui se démarquera vraiment à chaque instance de "elle" et serait facilement consultable. Peut-être même rendre le script insérer à la fois "lui" et "ses" chaînes pour que vous n'ayez besoin que de supprimer l'un après avoir vu le contexte?

Vous allez économiser beaucoup de temps et d'efforts de cette façon. Sans parler du sang, de la sueur et des larmes! (-:

À venir avec une solution entièrement automatique n'est pas un exploit moyen, car il impliquera de numériser un corpus massif de mots pour déterminer si le mot suivant est un objet.

Gagnez parfois que des améliorations supplémentaires de 5 ou 10% ne valent tout simplement pas l'effort supplémentaire impliqué. Sauf bien sûr en tant que "il est laissé comme un exercice intéressant pour le lecteur ..." Type problème que certains livres de texte semblent aimer.

edit: J'ai oublié de mentionner que trouver ce "point de basculement" est un véritable art. Définitivement une compétence qui vient uniquement avec l'expérience. (-:

EDIT: Partie II - La revanche J'ai également oublié de mentionner que vous pouvez éliminer une case Edge. Si le mot "lui" est suivi de la ponctuation, par exemple "... à elle.", "... Pour elle,", etc. Ensuite, vous pouvez éliminer l'incertitude de ces cas et simplement les remplacer par "lui". De même si le mot est suivi d'une classe de mots, par exemple "... pour elle de" peut avoir la "elle" facilement être remplacée par "lui". edit 3: Ce n'est pas une liste complète des exceptions, mais est simplement destiné à une suggestion pour un point de départ de la liste des articles que vous devez rechercher.

htth


2 commentaires

"Vous ne l'avez pas permis à elle, avec certes artificiellement, interrompre des phrases."


Ce n'était pas conçu comme une liste complète, donc je vais ajouter une clarification.



1
votes

définitivement non. Vous devriez faire une analyse syntaxique sur votre texte d'entrée (à l'analyse de la langue anglaise, c'est vraiment là que vient le mot "à analyser"). C'est la seule façon de déterminer avec certitude ce que la "elle" dans votre texte représente, vous ne pouvez pas compter sur la recherche et la remplacement. Il y a plusieurs façons de le faire, mais aucun ne serait qualifié de «assez simple», je pense.


0 commentaires

1
votes

Je vais aborder regex, car c'est l'une des balises. Les expressions régulières sont insuffisamment puissantes pour l'analyse de la langue humaine, car la regex ne fait pas de récursion, et tous les lgnguages ​​humains sont récursifs.

Lorsque ce fait est combiné avec les autres ambiguïtés en anglais, comme la façon dont de nombreux mots peuvent servir plusieurs fonctions dans une sensibilité sensible, je pense qu'une solution automatisée fiable sera un projet très difficile et coûteux.


0 commentaires

1
votes

À propos du seul à laquelle je peux penser (et je suis sûr que quelqu'un dans les commentaires me prouvera tort!) Est-ce qu'une instance de elle suivie de la ponctuation peut probablement être remplacée par lui . Mais je suis toujours d'accord avec les réponses précédentes que vous êtes probablement le mieux en train de faire un remplacement manuel.


0 commentaires

3
votes

Compte tenu de la portée de votre projet: Inverser tous mots liés au sexe, il apparaît que:


0 commentaires

6
votes

d'accord. Permet de regarder cela comme un linguiste pourrait. Je pense à haute voix ici.

" elle " est un pronom. Il peut soit être un:

1. pronom possessif

c'est Son Book.

2. pronom personnel

Donnez-le à elle . (après préposition)

il a écrit elle une lettre. (objet indirect)

il a traité elle pour un rhume. (objet direct)

permet de regarder l'affaire (1), pronoun possessif. C'est ce que c'est un pronom qui se trouve dans le cas "génitif" (ce qui signifie que c'est un nom qui est "possessif". D'accord, ce détail n'est pas aussi important que le prochain.)

Dans ce cas, "elle" agit comme un "déterminant". Les déterminants peuvent survenir dans deux endroits dans une phrase (ceci est une simplification):

Det + nom ("Son livre")

Det + adj + nom ("Son beau livre")

afin de déterminer si elle est déterminante, vous pourriez avoir cette logique:

a. Si le mot suivant "elle" est un nom, alors "elle" est un déterminant.

b. Si les 2 mots suivant "elle" est un adjectif, alors un nom, alors "elle" est un déterminant "

et si vous établissez que "elle" est un déterminant, vous savez que vous devez le remplacer par "son", qui est aussi un déterminant (aka génitif Noun, un pronom possessif).

s'il ne ne correspond pas les critères (a) et (b) ci-dessus, vous pouvez éventuellement conclure qu'il est pas un déterminant, ce qui signifie Ce doit être un pronom personnel. Dans ce cas, vous remplaceriez "elle" avec "lui".

vous n'auriez même pas à faire les tests ci-dessous , mais je vais essayer de les décrire de toute façon.


En regardant (2) d'en haut: Personal pronom, plutôt que possessif. Cela devient plus délicat.

Les exemples ci-dessus montrent "elle" se produisant de 3 façons:

(1) Donnez-le à elle . (après préposition. Nous appelons cela "objet d'une préposition".)

Donc, vous pourriez peut-être concevoir une règle: "Si" elle "se produit immédiatement après une préposition, elle devrait alors être traitée comme un nom, nous le remplacerions donc".

Les deux suivants sont difficiles. "Son" peut soit être un objet direct ou un objet indirect .

(2) il a écrit elle une lettre. (objet indirect)

(3) il traité elle pour un rhume. (objet direct)

Syntaxiquement, comment pouvons-nous dire la différence?

Un objet direct se produit immédiatement après un verbe.

Si vous avez un verbe, suivi d'un nom, alors que Noun est un objet direct. Par exemple:

il a traité elle . *

Si vous avez un verbe, suivi d'un nom, suivi d'une phrase prépositionnelle, alors le nom est un objet direct.

il traité elle pour un rhume. ("elle" est un nom, et il vient immédiatement après le verbe "Traité". "Pour un rhume" est un phrase prépositionnelle.)

Ce qui signifie que vous pourriez dire "si vous avez verbe + nom + préparation", le nom est un objet direct. Depuis que le nom est un objet direct, c'est un pronom personnel, alors utilisez-le "lui". (Remarque, il vous suffit de rechercher une préposition, et non de la phrase de préparation entière, car la phrase commencera toujours par une préposition.)

S'il s'agit d'un objet indirect, vous aurez le formulaire "Verbe + nom + nom".

il a écrit sa une lettre. ("elle" est un nom, "lettre" est un nom. Eh bien, "une lettre" est une "phrase" noun , alors vous devez également expliquer les déterminants.)

Alors ... si "elle" est un objet direct, un objet indirect ou obj de la préparation, vous pouvez le changer à "lui", sinon, le changer ".

Cette méthode semble beaucoup plus compliquée - je ne voudrais donc commencer par vérifier si "elle" est un déterminant (voir ci-dessus), et s'il est un déterminant, utilisez "Son" Sinon, utilisez-le simplement " ".


Donc, ce qui précède a beaucoup de simplifications. Il ne couvre pas "les expressions d'interruption", ni la clause structures, ou tests de circonscription, ou des clauses intégrées, ou de la ponctuation, ou quoi que ce soit comme ça.

En outre, cette solution nécessite un dictionnaire - une liste de "noms" et des "verbes" et des "prépositions" afin que vous puissiez déterminer la catégorie lexicale de chaque mot dans la phrase.

Et même là, l'homme, le traitement des langues naturelles est difficile. Vous voudriez faire une sorte de "formation" pour votre modèle pour avoir une bonne solution. Mais pour des choses très simples, essayez certaines des choses décrites ci-dessus.

Désolé d'être tellement verbeux! (Aucune des réponses existantes n'a donné de données strictes ou de définitions linguistiques précises, alors voici.)


5 commentaires

J'étais presque sur le point de dire "cela pourrait être réalisable", mais j'ai remarqué des "verbes" et des "noms" se chevauchent. Badgers de blaireau, serpents serpents, champignons champignons. Et les verbes à particule posent un autre obstacle en se terminant par une "préposition".


Je ne pense pas que cela pose un problème. Nous essayons seulement de comprendre la catégorie lexicale de "elle". Alors prenez "elle aime son blaireau". Le mot suivant "elle" est "Badger". Parce que "elle" a lieu avant "blaireau", alors "blaireau" ne peut pas être un verbe, car les compléments d'un verbe (d.o., i.o.o. ou obj de la préparation) doivent se produire après le verbe. Il n'aurait donc donc pas besoin de voir si "Badger" se produit dans le jeu "nom", indépendamment de si cela peut être un verbe.


Je ne pense pas que les "verbes à particule" sont un problème non plus. Dans "Nous veille à elle", "après" est une préposition et "elle" est clairement l'obj d'une préparation. Le seul cas que je peux penser était qu'un nom se produirait avant qu'un verbe de particule soit lorsque le nom fait l'objet de la phrase. Donc, peut-être une règle devrait être "si le nom se produit avant le verbe, c'est le sujet, alors utilisez le pronom personnel plutôt que le possessive."


Ah, laissez-moi corriger cela: si le nom se produit dans le sujet (à gauche du verbe), mais est dans la position du déterminant ("son livre est perdu"), il devrait être possessif. Donc, vraiment, mieux tenir à la règle "Est-ce avant une substance".


Oh, une chose de plus. Vous pouvez avoir de nombreux adjectifs / adverbes (modificateurs) dans la phrase. "Son poisson tacheté très affectueux." Dans ce cas, vous rechercheriez "det + (adj | adv) * + nom"



3
votes

essayer de déterminer si elle est un pronom possédant ou personnel est plus difficile que d'essayer de déterminer la classe de lui ou son . Cependant, vous vous attendriez à être utilisé dans les mêmes contextes donné un corpus assez grand. Alors pourquoi ne pas inverser le problème? Prenez un grand corpus et trouvez toutes les occurrences de lui et son . Ensuite, regardez les mots les entourant (combien de mots que vous devez regarder est laissé à vous). Avec suffisamment d'exemples d'entraînement, vous pouvez estimer la probabilité qu'un ensemble donné de mots dans le voisinage du mot indique ou son . Ensuite, vous pouvez utiliser ces estimations de probabilité sur une occurrence de elle pour déterminer si vous devriez utiliser lui ou son . Comme d'autres réponses ont indiqué, vous n'allez pas être parfait. En outre, déterminer la taille d'un quartier à utiliser et comment calculer les probabilités est un peu de travail juste. Vous pourriez probablement faire assez bien en utilisant un classificateur simple comme des baies naïves.

Je soupçonne, cependant, vous pouvez obtenir un peu de précision décent en regardant des schémas dans certaines parties du discours et en écrivant des règles. Naturellement, certains vous manquerez, mais probablement une douzaine de règles ou de même représenteront la majorité des événements. J'ai juste jeté un coup d'œil sur une cinquantaine d'occurrences de elle dans "le pousse-pousse fantôme" de Rudyard Kipling et vous pouvez facilement obtenir une précision de 90% juste à la règle:

her_followed_by_noun? possessif: personnel

Vous pouvez utiliser une étagère hors tension (POS) Tagger comme le Stanford Pos Tagger pour déterminer automatiquement si un mot est un nom ou autre chose dans le contexte. Encore une fois, ce n'est pas parfait, mais ça fait assez bien.

Les boîtiers de bord avec des structures de clause impaires sont difficiles à obtenir, mais elles se produisent également rarement dans la plupart du texte. Cela dépend simplement de vos données.


0 commentaires

1
votes

OK, sur la base de certaines des réponses que les gens ont donné, j'ai une meilleure idée de la façon de s'approcher de cela. Au lieu d'essayer d'écrire un script qui corrige ce droit 100% du temps, je viserai simplement à le faire le plus souvent possible. Une recherche rapide à travers certains textes de langue anglaise montre que "son" apparaît (très grossièrement) deux fois plus souvent que "lui", le comportement par défaut devrait donc être de la convertir "sa". Si je l'ai fait et que rien d'autre, il devrait avoir raison environ les deux tiers du temps.

Maintenant, je ne suis pas intéressé à trouver des modèles qui montreraient "elle" devrait être convertie en "son", car c'est ce que je ferais de toute façon, je ne souhaite que trouver des modèles qui lui montreraient "elle" devrait être converti en "lui", puisque cela me permettrait de réduire le taux d'erreur. Il y a deux règles que je peux mettre en œuvre équitablement sans douleur:

  • Si "elle" est suivie immédiatement par une virgule ou une période, elle devrait être convertie en "lui", comme l'a dit Michael Itzoe.

  • si "elle" se produit immédiatement après une préposition, elle devrait alors être traitée comme un nom, nous le remplacerons par "lui", comme le dit Rasher.

    Et je pourrai faire plus que cela si j'utilise une partie du logiciel de marquage de la parole. Je pense que je vais continuer à faire la tâche facile: -)


0 commentaires