Этот репозиторий состоит из проекта, выполненного как часть курса по обработке естественного языка - Advanced, весна 2014 года. Курс был проинструктирован доктором Дипти Мисрой Шарма, доктором Рави Джампани и г -ном Акулой Арджун Редди
Подробный отчет доступен здесь
##Требования
## Проблема В этом проекте реализована модель на основе фразы. Модель, основанная на фразе, - это простая модель для машинного перевода, основанная исключительно на лексическом переводе, переводе фраз. Это требует словаря, который отображает фразы от одного языка на другой. Сначала мы находим выравнивание слова. Далее, используя двух текстовый корпус, мы обучаем модель и рассчитываем вероятность трансляции. Наряду с вероятностями перевода мы используем языковую модель, чтобы отразить беглость на английском языке.
Папка источника состоит из следующих методов:
### Основные функции
Запустите следующую команду, чтобы создать случайный набор предложений X:
python preprocess.py sourcecorpus targetcorpus numberofsentenciesforing
Он будет генерировать четыре файла:
TrainingSource.txt TrainingTarget.txt testingSource.txt testingTarget.txt
TrainingSource.txt, TrainingTarget.txt: содержит заданное количество предложений
testingsource.txt, testingtarget.txt: содержит 5 тестовых предложений, которые мы используем позже
Затем запустите слово «выравнивание слова», Giza ++, чтобы получить выравнивания.
Чтобы запустить Giza ++, сделайте следующее:
./plain2snt.out treningsource.txt trainingtarget.txt
./Giza++ -s trainingSource.vcb -t trainingtarget.vcb -c traningsource_trainingTarget.snt
Если предыдущий шаг дает ошибку, то сделайте:
./snt2cooc.out treningsource.vcb trainingtarget.vcb trainingsource_trainingtarget.snt> cooc.cooc
./Giza++ -s trainingSource.vcb -t trainingtarget.vcb -c traningsource_trainingTarget.snt -cocurrencefile cooc.cooc
Это генерирует несколько файлов. Слово выравнивания присутствуют в файле A3. Повторите этот шаг, заменив TrainingSource.txt и TrainingTarget.txt, чтобы получить другое направление выравнивания. Дайте sourceAlinment.txt и TargetLenment.txt - два файла. Затем мы получаем фразы следующим образом:
python praseextraction.py sourcealenment.txt targetLenment.txt
Фразы генерируются в файловом фразе.txt. Затем мы рассчитываем вероятность перевода.
Запустите следующую команду:
Python findTranslationProbability.py Frase.txt
Он будет генерировать два файла:
TranslationProbabilitySourceGiventarget.txt
TranslationProbabilityTargetGivenSource.txt
python languageDelinput.py trainsource.txt trains.txt
python languageDelinput.py traintarget.txt traint.txt
Создайте zip -файл для этого, который теперь вводит для языковой модели. Это работает следующим образом:
./ngt -i = "Gunzip -c trains.gz" -n = 3 -o = train.www -b = да
./tlm -tr = train.www -n = 3 -lm = wb -o = trains.lm
./ngt -i = "Gunzip -c traint.gz" -n = 3 -o = train.www -b = да
./tlm -tr = train.www -n = 3 -lm = wb -o = traint.lm
После получения повышения трансляции из матрицы выравнивания он объединяет вероятность перевода из языковой модели и возвращает плавность FundTranslation.
Запустите команду Follwowing для обоих направлений:
Python finalscore.py translationProbabilityTargetGivenSource.txt trainSource.lm finalTransLationProbabilityTargetGivenSource.txt
python finalscore.py translationprobabilitysourcegiventarget.txt traintarget.lm finaltranslationprobabilitysourcegiventarget.txt
Он возвращает файл окончательный перевод вероятности
python finalscore.py
python finalscore.py
### Помощная функция:
### Анализ ошибок
Метод erroranalysis.py принимает вход в очень специфический формат. Учитывая исходное предложение, переведенное предложение и фактический перевод, разделенный Newline, оно возвращает точность и отзыв для входного файла в evention.txt