From 898670ceecd77f5a0fc13f0fab9b689d43a1603c Mon Sep 17 00:00:00 2001 From: Mysaa Date: Sun, 26 Nov 2023 15:22:29 +0100 Subject: [PATCH] =?UTF-8?q?Modifications=20de=20la=20derni=C3=A8re=20fois?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CategoriesGramaticalesCombinatoire.ods | Bin 22384 -> 25027 bytes ccg-test.py | 38 ++++++++------- ccg-test2.py | 18 ++++++++ ccg-test3.py | 61 +++++++++++++++++++++++++ phrases.txt | 4 +- 5 files changed, 103 insertions(+), 18 deletions(-) create mode 100644 ccg-test2.py create mode 100644 ccg-test3.py diff --git a/CategoriesGramaticalesCombinatoire.ods b/CategoriesGramaticalesCombinatoire.ods index 18278a31e17026354dec240d1689426b6aac9546..4cecb7e598ffb5c9573d2e0a8ae4472f1a29bf30 100644 GIT binary patch delta 21484 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

|3VmbC)>-Aodwfb&po7}e4O;_1@JET&( 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 diff --git a/ccg-test.py b/ccg-test.py index 13b12b5..501d54a 100644 --- a/ccg-test.py +++ b/ccg-test.py @@ -12,7 +12,7 @@ n = len(table['MOT']) # On donne la liste des catégories primitives lexstring=':- S,N,Pp\n' # On ajoute la notation V pour N\S -lexstring+='V :: N\\S\n' +lexstring+='V :: S\\N\n' # On lis les données depuis le tableur en une chaine de caractère parsable for i in range(n): @@ -26,29 +26,35 @@ for i in range(n): # On crée notre lexique lex = lexicon.fromstring(lexstring) -#print(lex) # On crée le parser, on donne l'ensemble des règles qu'il est cencé connaître -#parser = chart.CCGChartParser(lex, chart.DefaultRuleSet) -parser = chart.CCGChartParser(lex, chart.ApplicationRuleSet) +parser = chart.CCGChartParser(lex, chart.DefaultRuleSet) +#parser = chart.CCGChartParser(lex, chart.ApplicationRuleSet) + +printTotal=True +printDerivations=not printTotal # On lit les phrases dans le fichier with open('phrases.txt') as f: lines = f.readlines() - - # On ajoute quelques phrases de test supplémentaires - lines.append("chat dort") - lines.append("pouet souris") - lines.append("quel chat mange la souris ?") - lines.append("pouet prout ?") - lines.append("chat surdort") + + lines.append("mon voisin lui donne le chat") for phrase in lines: # On met tout en minuscule phrase = phrase.lower().strip() - print('#',phrase) - - # Et on affiche tous les arbres de dérivation trouvés - for parse in parser.parse(phrase.split()): - chart.printCCGDerivation(parse) + if printDerivations: + print("============================================================================") + print('#',phrase) + lex = lexicon.fromstring(lexstring) + parser = chart.CCGChartParser(lex, chart.ApplicationRuleSet) + # Et on affiche tous les arbres de dérivation trouvés + i=0 + for parse in parser.parse(phrase.split()): + i+=1 + if printDerivations: + chart.printCCGDerivation(parse) + + if printTotal: + print(i,phrase) diff --git a/ccg-test2.py b/ccg-test2.py new file mode 100644 index 0000000..1328bae --- /dev/null +++ b/ccg-test2.py @@ -0,0 +1,18 @@ +from nltk.ccg import chart, lexicon +import pandas as pd +import numpy as np + + +lexstring=''' +:- S,N +chat => N +dort => N\S +''' + +lex = lexicon.fromstring(lexstring) +print(lex) +parser = chart.CCGChartParser(lex, chart.ApplicationRuleSet) + +phrase="chat dort" +for parse in parser.parse(phrase.split()): + chart.printCCGDerivation(parse) diff --git a/ccg-test3.py b/ccg-test3.py new file mode 100644 index 0000000..33b519f --- /dev/null +++ b/ccg-test3.py @@ -0,0 +1,61 @@ +from nltk.ccg import chart, lexicon + +lex = lexicon.fromstring(''' + :- S, NP, N, VP + + Det :: NP/N + Pro :: NP + Modal :: S\\NP/VP + + TV :: VP/NP + DTV :: TV/NP + + the => Det + + that => Det + that => NP + + I => Pro + you => Pro + we => Pro + + chef => N + cake => N + children => N + dough => N + + will => Modal + should => Modal + might => Modal + must => Modal + + and => var\\.,var/.,var + + to => VP[to]/VP + + without => (VP\\VP)/VP[ing] + + be => TV + cook => TV + eat => TV + + cooking => VP[ing]/NP + + give => DTV + + is => (S\\NP)/NP + prefer => (S\\NP)/NP + + which => (N\\N)/(S/NP) + + persuade => (VP/VP[to])/NP + ''') + +parser = chart.CCGChartParser(lex, chart.DefaultRuleSet) +for parse in parser.parse("you prefer that cake".split()): + chart.printCCGDerivation(parse) + break + +for parse in parser.parse("that is the cake which you prefer".split()): + chart.printCCGDerivation(parse) + break diff --git a/phrases.txt b/phrases.txt index 81cbfcd..09a0eae 100644 --- a/phrases.txt +++ b/phrases.txt @@ -26,7 +26,7 @@ Il le donne à la souris Il le lui donne Il souhaite que mon voisin lui donne le chat Il souhaite donner le chat à mon voisin -Le chat de mon voisin pourchasse et aMrape la souris -La souris dort et le chat de mon voisin aMrape la souris +Le chat de mon voisin pourchasse et attrape la souris +La souris dort et le chat de mon voisin attrape la souris Le chat dort et la souris dort Le chat et la souris dorment