#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
NLP: this is my python script to generate an appropriate S2.gr:
Change the words in s2 table to generate your own grammar.
'''
outFile = open("S2.gr", 'w')
s2 = ['EOF','Det','Noun','Prep','Proper','VerbT','VerbBase','Modal']
outFile.write('1\t' + 'S2' + '\n')
for word in s2:
outFile.write('1\t' + 'S2' + '\t' + '_'+str(word) + '\n')
for word in s2:
outFile.write('1\t' + '_'+str(word) + '\t' +str(word) + '\n')
for s in s2:
outFile.write('1\t' + '_'+str(word) + '\t' +str(word) + ' ' + '_'+str(s) + '\n')
outFile.close()
if __name__ == "__main__":
print "gosh!"
Friday, 27 April 2012
NLP
Subscribe to:
Post Comments (Atom)
No dobrze i co to robi? :-)
ReplyDeleteDobre pytanie :) To jest specyficzny skrypt dla jednego z zadań na kurs NLP. Zamiast żmudnie pisać ręcznie, ten kawałek kodu generuje ważoną, bezkontekstową gramatykę. Następnie model, który korzysta z tej gramatyki rozkłada każde zdanie i przypisuje mu pewną wagę, na ile jest ono powszechne w języku angielskim. Dzięki temu skryptowi nawet zdanie skonstruowane przez bardzo pijanego Anglika ma przypisane pewne prawdopodobieństwo wystąpienia. Tu chodziło o wyrobienie sobie intuicji, że każdy nawet przypadkowy ciąg słów ma (choć bardzo małe) prawdopodobieństwo wystąpienia w języku naturalnym.
ReplyDelete