Modifications de la dernière fois

This commit is contained in:
Mysaa 2023-11-26 15:22:29 +01:00
parent c8ee73b8f7
commit 898670ceec
Signed by: Mysaa
GPG Key ID: 7054D5D6A90F084F
5 changed files with 103 additions and 18 deletions

View File

@ -12,7 +12,7 @@ n = len(table['MOT'])
# On donne la liste des catégories primitives # On donne la liste des catégories primitives
lexstring=':- S,N,Pp\n' lexstring=':- S,N,Pp\n'
# On ajoute la notation V pour N\S # 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 # On lis les données depuis le tableur en une chaine de caractère parsable
for i in range(n): for i in range(n):
@ -26,29 +26,35 @@ for i in range(n):
# On crée notre lexique # On crée notre lexique
lex = lexicon.fromstring(lexstring) lex = lexicon.fromstring(lexstring)
#print(lex)
# On crée le parser, on donne l'ensemble des règles qu'il est cencé connaître # 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.DefaultRuleSet)
parser = chart.CCGChartParser(lex, chart.ApplicationRuleSet) #parser = chart.CCGChartParser(lex, chart.ApplicationRuleSet)
printTotal=True
printDerivations=not printTotal
# On lit les phrases dans le fichier # On lit les phrases dans le fichier
with open('phrases.txt') as f: with open('phrases.txt') as f:
lines = f.readlines() lines = f.readlines()
# On ajoute quelques phrases de test supplémentaires lines.append("mon voisin lui donne le chat")
lines.append("chat dort")
lines.append("pouet souris")
lines.append("quel chat mange la souris ?")
lines.append("pouet prout ?")
lines.append("chat surdort")
for phrase in lines: for phrase in lines:
# On met tout en minuscule # On met tout en minuscule
phrase = phrase.lower().strip() phrase = phrase.lower().strip()
print('#',phrase) if printDerivations:
print("============================================================================")
# Et on affiche tous les arbres de dérivation trouvés print('#',phrase)
for parse in parser.parse(phrase.split()): lex = lexicon.fromstring(lexstring)
chart.printCCGDerivation(parse) 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)

18
ccg-test2.py Normal file
View File

@ -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)

61
ccg-test3.py Normal file
View File

@ -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

View File

@ -26,7 +26,7 @@ Il le donne à la souris
Il le lui donne Il le lui donne
Il souhaite que mon voisin lui donne le chat Il souhaite que mon voisin lui donne le chat
Il souhaite donner le chat à mon voisin Il souhaite donner le chat à mon voisin
Le chat de mon voisin pourchasse et aMrape la souris Le chat de mon voisin pourchasse et attrape la souris
La souris dort et le chat de mon voisin aMrape la souris La souris dort et le chat de mon voisin attrape la souris
Le chat dort et la souris dort Le chat dort et la souris dort
Le chat et la souris dorment Le chat et la souris dorment