Конвертировать.sgm в.txt
У меня есть несколько файлов в формате.sgm, и я должен оценить их (применить модель языка и получить недоумение текста).
Основная проблема заключается в том, что мне нужны эти файлы в простом формате, то есть в формате TXT. Однако я искал в интернете онлайн-конверт или какой-то скрипт, делающий это, и не смог найти.
Кроме того, мой учитель прислал мне эту команду на Perl:
perl -n 'print $1."\n" if /<seg[^>]+>\s*(.*\S)\s*<.seg>/i;’ < file.sgm > file
Я никогда не работал с Perl и, честно говоря, понятия не имею об этом. Я думаю, что у меня установлен Perl:
$ perl -v
This is perl 5, version 18, subversion 2 (v5.18.2) built for darwin-thread-multi-2level
(with 2 registered patches, see perl -V for more detail)
Copyright 1987-2013, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
Кстати, я использую Mac OS X.
Пример файла.sgm:
<srcset setid="newsdiscusstest2015" srclang="any">
<doc sysid="ref" docid="39-Guardian" genre="newsdiscuss" origlang="en">
<p>
<seg id="1">This is perfectly illustrated by the UKIP numbties banning people with HIV.</seg>
<seg id="2">You mean Nigel Farage saying the NHS should not be used to pay for people coming to the UK as health tourists, and saying yes when the interviewer specifically asked if, with the aforementioned in mind, people with HIV were included in not being welcome.</seg>
<seg id="3">You raise a straw man and then knock it down with thinly veiled homophobia.</seg>
Отупуть.txt файл:
Это прекрасно видно на примере нанимателей UKIP, запрещающих людей с ВИЧ. Вы имеете в виду Найджела Фараджа, который говорит, что NHS не следует использовать для оплаты за людей, приезжающих в Великобританию в качестве медицинских туристов, и говорите "да", когда интервьюер специально спрашивает, были ли, с учетом вышеизложенного, люди с ВИЧ включены в число приглашенных. Вы поднимаете соломенного человека и затем сбиваете его с тонко завуалированной гомофобии.
3 ответа
Вы можете попробовать использовать этот скрипт для удаления тегов SGML из файла:
#!/usr/bin/env perl
use strict;
use warnings;
use HTML::Parser;
my $file = $ARGV[0];
HTML::Parser->new(default_h => [""],
text_h => [ sub { print shift }, 'text' ]
)->parse_file($file) or die "Failed to parse $file: $!";
Используйте это следующим образом:
./strip_sgml.pl file.sgm > file.txt
Хорошо, я нашел решение:
переименуйте файл из "file.sgm" в "file.html". Затем откройте HTML-файл с помощью текстового редактора и добавьте сверху строку <meta charset="utf-8">
, так что все символы могут быть правильно отображены. Наконец, откройте этот файл с помощью веб-браузера и скопируйте содержимое в новый текстовый файл.
Для решения на python ответ пользователя Hugo удалит все теги из документа (Python / BeautifulSoup - как удалить все теги из элемента?).
TL; DR Используйте функцию get_text() из Beautiful Soup.