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

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