Modifications de la dernière fois
This commit is contained in:
parent
c8ee73b8f7
commit
898670ceec
Binary file not shown.
30
ccg-test.py
30
ccg-test.py
@ -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("============================================================================")
|
||||||
|
print('#',phrase)
|
||||||
|
lex = lexicon.fromstring(lexstring)
|
||||||
|
parser = chart.CCGChartParser(lex, chart.ApplicationRuleSet)
|
||||||
|
|
||||||
# Et on affiche tous les arbres de dérivation trouvés
|
# Et on affiche tous les arbres de dérivation trouvés
|
||||||
|
i=0
|
||||||
for parse in parser.parse(phrase.split()):
|
for parse in parser.parse(phrase.split()):
|
||||||
chart.printCCGDerivation(parse)
|
i+=1
|
||||||
|
if printDerivations:
|
||||||
|
chart.printCCGDerivation(parse)
|
||||||
|
|
||||||
|
if printTotal:
|
||||||
|
print(i,phrase)
|
||||||
|
|||||||
18
ccg-test2.py
Normal file
18
ccg-test2.py
Normal 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
61
ccg-test3.py
Normal 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
|
||||||
@ -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
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user