argon bulletin board

Експертно търсене  

Новини:

Регистрирането на нови потребители е временно деактивирано.

Автор Тема: Perl за лингвисти - практикум  (Прочетена 6210 пъти)

artanis

  • Неактивен Неактивен
  • Публикации: 589
    • http://free.hit.bg/artanis

Здравейте,

Това е темата за практикума Perl за лингвисти (зимен триместър 2006) (http://www.fmi-plovdiv.org/bg_ver/edu/izb_a/167.htm).

Практикумът ще бъде провеждан всеки петък от 9:15 до 13:00 (относно възможни промени в графика - след като ги съгласъвам със студентите, информацията ще качвам тук.)

Академичният календар на ФМИ, ПУ може да бъде видян тук:  http://www.fmi-plovdiv.org/bg_ver/edu_gra/edu_k.htm

Всички презентации ще публикувам в тази тема, така че всеки ще може да ги изтегли.

Ако имате някакви предложения или препоръки относно практикума, моля пишете в тази тема.

Можете да коментирате преподавателя (т.е. мен) тук: http://forum.argon.acad.bg/index.php?topic=703.0

поздрави:
Атанас Чанев (a.k.a. artanis)
Активен

artanis

  • Неактивен Неактивен
  • Публикации: 589
    • http://free.hit.bg/artanis
Re: Perl за лингвисти - практикум
« Отговор #1 -: 14.01.2006, 11:04:22 »

Здравейте,

Слайдовете от първата презентация могат да бъдат изтеглени от:

http://web.hit.bg/chanev/PFLLectureNotes/notesPerl1.pdf (ако намерите грешки, казвайте ;) )

Разбрахме се, че на 17ти Февруари класът няма да се проведе, също се разбрахме 4 седмици след това практикумът да бъде 1 час повече (да оставаме един час след като свършваме по програма или да идваме един час по-рано. Аз поех ангажимент да питам кога ще бъде свободна залата, за да уточним тези неща)

За изпита:

След като се допитах до вашето мнение, реших изпитът да е под формата на проекти (поддръжниците на това да има тест сред вас не бяха много). Следващият път е желателно да решим кой какъв проект ще вземе.

Проекти:

Имаше две одобрени теми за проект:
Без нито един глас против беше проект за автоматично извличане на резюмета от текстове на български език.
С един глас против беше проект за автоматично определяне на клаузите в изречение (може би заради клаузите, но според мен този проект е по-лесен от резюмирането).

Сещам се и за още два проекта, които трябва да обсъдим следващата седмица:

Единият е за извличане на информация и търсене в граф. Целта е да се напише програма с интерфейса на гуугъл, която да събира информация за възможни полети между два града (с прикачване), след което да показва най-евтиния вариант.

Другият проект е лингвистичен. Става дума за автоматично намиране на следите в изречение на италиански език.

Това е от мен, ако имате някакви въпроси, препоръки или оплаквания, пишете тук!

поздрави:
Атанас Чанев
Активен

Valdorval

  • Неактивен Неактивен
  • Публикации: 87
Re: Perl за лингвисти - практикум
« Отговор #2 -: 14.01.2006, 13:27:58 »

Здравей Атанасе,

 Искам да идвам на твоето предаване за Perl, но заради лични причини няма да мога затова искам да те помоля ако може някак си да ми пуснеш всички презентации за да ги чета когато имам време.


P.S И въпреки че нямам задължение да идвам на предаванията, защото не са ми по програма искам да разбера нещо повече за Perl.
Активен

Tosh

  • Неактивен Неактивен
  • Публикации: 249
  • Filmmaker
    • Изследванията на Тодор Арнаудов
Re: Perl за лингвисти - практикум
« Отговор #3 -: 15.01.2006, 03:22:46 »

Здравейте


@ Artanis

Може ли да подскажеш нещо за това какво значи "намиране на следите в изречение"? Предполагам че превеждаш "sentence tracing" или "s. trace"  или нещо подобно?
Ако правилно съм налучкал и разбрал каквото открих ( в една статия по психолингвистика, за увреждания, засягащи речта ), се отнася за:
- проследяване на "движението на подлога", т.е. откриване на промени на подлога и на нов подлог
-  свързване на местоимения с "правилен подлог", предшестващ местоимението

В пример който гледах:

The man liked the tailor with the British accent *1 who (t) *2
claimed to know the queen.

"who" е "следа" към "tailor", който става нов подлог

...

Относно речниците на програмите, които ще пишем и това колко езиково "отворени" ще бъдат те. Всъщност е ясно, че не е разумно да седнем и ръчно да опишем десетки и стотици хиляди думи, и че е по-разумно изреченията които предоставяме на програмата да са съобразени с ограниченията на  "контролирания език", който ще се получи от речниците ни.

В тази връзка искам да обърна внимание върху Морфологичния анализатор за български, разработен в ПУ, който може да се използва през уеб.

http://www.pu.acad.bg/dcs/lingua1.htm
http://www.pu.acad.bg/dcs/morph.htm

и Синтактичния анализатор, Проверка на синтактичното съгласуване на двойка думи в български текст:
http://www.pu.acad.bg/dcs/syntax.htm

Въпросът ми е, може ли още в ранните фази на курса да ни обясниш как бихме могли да подаваме заявки към тези помагала през Пърл, и да получаваме отговорите? Вместо да чакаме до лекция 11. Мрежата като корпус. Използване на програмния интерфейс на търсачката Google.


Поздрави
Активен
Творчество и изследвания:
http://twenkid.com
http://artificial-mind.blogspot.com

artanis

  • Неактивен Неактивен
  • Публикации: 589
    • http://free.hit.bg/artanis
Re: Perl за лингвисти - практикум
« Отговор #4 -: 15.01.2006, 16:34:19 »

@Tosh,

>Може ли да подскажеш нещо за това какво значи "намиране на следите в изречение"?

Тук може да видиш как са дефинирани различните видове следи в италианската банка от дървета:
http://www.di.unito.it/~bosco/phdthesis.zip

Това, което си гледал вероятно е за банката от дървета на университета в Пенсилвания. Смятам проектът да бъде нещо като
http://www.coli.uni-saarland.de/~dienes/papers/dienes_thesis.pdf - с неговите методи, само че за италианската банка от дървета.

Да отбележа само, че в нито един от проектите това, което ще се обработва няма да бъде контролиран подезик. Приложенията трябва да бъдат достатъчно robust, за да обработват непознати думи и конструкции.

Много добре, че си намерил страниците с приложенията на доцент Крушков. Има още едно приложение (което трябва да се тества). То е POS tagger със Скрити Модели на Марков. По някое време ще сложа линк.

Един от начините да използваме тези приложения е през интернет, а другият е да питаме Христо Крушков и Георги Тотков до каква степен можем да ползваме техните ресурси. Докато изясним проектите, ще се свържа с тях и ще ги питам.

>Въпросът ми е, може ли още в ранните фази на курса да ни обясниш как бихме могли да подаваме заявки към тези помагала през Пърл, и да получаваме отговорите?

Потърсих набързо в нет и открих тези адреси:
http://www.cs.luther.edu/~bmiller/CS485/Labs/Lab1/Lab1.html
http://www.huyler.net/personal/courses/networks/project6/http.html

За АПИ-то на гуугъл:
http://www.google.com/apis/

поздрави:
а.
« Последна редакция: 15.01.2006, 17:21:54 от artanis »
Активен

Tosh

  • Неактивен Неактивен
  • Публикации: 249
  • Filmmaker
    • Изследванията на Тодор Арнаудов
Re: Perl за лингвисти - практикум
« Отговор #5 -: 17.01.2006, 04:34:41 »

Здравей,

"Да отбележа само, че в нито един от проектите това, което ще се обработва няма да бъде контролиран подезик. Приложенията трябва да бъдат достатъчно robust, за да обработват непознати думи и конструкции."

Благодаря и от името на колегите за първата пратка полезни материали. :) Явно курсът ще е много по-сериозен, мащабен и задълбаващ, отколкото си мислех ( а предполагам и колегите... ), и заедно с радостта и вълнението от това се прокрадва и някакво мъничко притесненийце... ;)
 
Между другото, имам "сантиментален" спомен с Морфологичния анализатор ;), защото изигра роля в избора ми на ФМИ като бях кандидатстудент. За лош късмет най-удобните и хубави изпити за мързеливец като мен - по Физика в ТУ и по Информатика в ПУ - съвпадаха, и трябваше да правя съдбоносен избор още преди изпитите. :)

Поздрави
Активен
Творчество и изследвания:
http://twenkid.com
http://artificial-mind.blogspot.com

artanis

  • Неактивен Неактивен
  • Публикации: 589
    • http://free.hit.bg/artanis
Re: Perl за лингвисти - практикум
« Отговор #6 -: 21.01.2006, 16:51:54 »

Здравейте колеги,

Слайдовете от последното упражнение можете да изтеглите от адрес:

http://web.hit.bg/chanev/PFLLectureNotes/notesPerl2.pdf (пишете ако не разбирате кирилицата от слайдовете. използвал съм шрифт Helvetica CY)

За упражненията (4) след седмицата в която отсъствам (да припомня, че на 18ти Февруари няма да имаме класове) трябва да решим дали да идваме 1 час по-рано, или да оставаме 1 час по-късно (но в такъв случай трябва да се местим в друга зала). Това ще го обсъдим следващия път.

За проектите:
Тъй като това е публичен форум и може да не искате хората да знаят имената ви, ще използвам инициали за всеки.

Б.К. все проект за нов дизайн на http://coling.pu.acad.bg и скриптове за автоматичнo извличане на съдържанието от колинг както и от сайта на ФМИ (след като извличаме без грешки съдържанието от сайта на ФМИ можем да говорим с GORO за примерен дизайн на сайта и с администраторите евентуално да качат сайта). Б., свали си страниците е колинг и започвай да пишеш скрипт за извличане на информацията. Другия път ще видим докъде си стигнал.

С.В, А.М, В.Б. и М.М. взеха проекта за полетите.
С.В. от приложна математика трябва да напише скрипт за търсене на най-кратък път в насочен граф. С, можеш да прочетеш някои неща за Теория на Графите от курса на Манчо Манев (от сайта на ФМИ потърси в online обучение)
Останалите, потърсете в гуугъл data mining и сайта, които дадох за гуугъл АПИ-то. Нормално би било да разпределите задачите: Един да пише скриптовете на пърл, друг да е специалист по data mining (трябва да разбира английски) и трети, който да работи с АПИ-то на гуугъл. Другият път искам да ми кажете кой какво ще прави.

З.А. и А.Г взеха проекта за автоматично намиране на клаузите в изречение на български език.  Прочетете тази статия: http://clg.wlv.ac.uk/papers/evans-DAARC-2000.pdf (от уеб сайта на групата по изчислителна лингвистика в Уулвърхямптън clg.wlv.ac.uk) и подгответе презентация (ако не сте готови за следващия път, може да я изнесете по-следващата седмица).

Д.П. и З.Б. взеха проект за сегментиране. Потърсете в гуугъл sentence (и word) segmentation както и за decision trees. За следващия път ако можете да подготвите кратка презентация за segmentation ще бъде много добре.

Тош взе проекта за следите. Вече дадох литература за четене. Ресурсът, който ще ползваме е: Банката от дървета на Университета в Торино http://www.di.unito.it/~tutreeb/. Оттам може да се изтегли безплатно. Също ще помоля Тош да подготви кратка презентация за проекта си след като прочете литературата (или поне тази част от тезисите, която засяга пряко неговия проект)

Х.Г., Н.В., Л.С. и И.П. взеха проекта за резюмирането. Това се очертава да е най-сложният проект и за това по него ще трябва да се включат още хора. Потърсете в интернет за резюмирането, а аз ще ви донеса лекциите от един курс по резюмиране. Един от вас ще трябва да отговаря за evaluation methods.
Към този проект има доста голям интерес от някои хора (един от тях се интересува от data mining, ще ви дам координатите му). Георги Тотков също се интересува от този проект във връзка с генерирането на определен тип въпроси за тестове (приложението е в електронното обучение). Когато си разясним методът, който ще ползваме и целите, които си поставяме ще поканим Георги Тотков на някоя от нашите лекции. Работата на някои от вас по този проект може да прерастне в дипломна работа. Доколкото разбрах е имало дипломанти, които са работили по тази тема. Аз се заемам да проверя кои са те и до какви резултати за стигнали. Този проект ще бъде голямо предизвикателство :)
И.П. също ще се занимава с POS tagging. Тази статия от сайта на Инго Шрьодер (http://nats-www.informatik.uni-hamburg.de/%7Eingo/papers/) може да служи на И. като въведение в POS tagging: http://nats-www.informatik.uni-hamburg.de/~ingo/papers/memo-314-02.pdf.gz

Х.М. и Н.К. взеха проект за генериране на българо-турски речник и започване на изготвянето на българо-турска паралелна банка от дървета. Очаквайте да ви пратя файлът от който да извлечете речника и който после ще трябва да превеждате. (няма да е лошо да потърсите модул за Пърл, който да използва SAX за работа с XML. Другия път ще говорим по-обстойно за това)

Някои от вас все още нямат проект! Много е важно да вземете проект колкото се може по-скоро! Има места за POS tagging, проекта за резюмирането и проекта за клаузите.

Ако имате някакви въпроси или препоръки, пишете ми на artanisz at mail dot bg

Разбрах, че малко се притеснявате за проектите. Моето мнение е, че ще се справите. Отначало си мислите така защото не знаете какво точно ще правите, но като прочетете материалите и като вземем обектно-ориентирания Пърл ще ви бъде по-ясно, обещавам ;)

приятен weekend!
don't work too much ;)
a.
« Последна редакция: 28.01.2006, 16:07:26 от artanis »
Активен

artanis

  • Неактивен Неактивен
  • Публикации: 589
    • http://free.hit.bg/artanis
Re: Perl за лингвисти - практикум
« Отговор #7 -: 28.01.2006, 16:06:32 »

Здравейте,

Слайдовете от третата седмица можете да изтеглите на адрес:
http://web.hit.bg/chanev/PFLLectureNotes/notesPerl3.pdf

В тях има примери само за функциите и 1 слайд за пакетите. Но за пакети, обекти и полиморфисъм можете да се подготвите от тези документи (търсени са с гуугъл и всеки може да ги изтегли. Не са от руски сървъри или нещо подобно)

http://www.csse.monash.edu.au/~damian/papers/PDF/cyberdigest.pdf
На този адрес можете да намерите извадка от книгата на Dr. Damian Conway (http://www.csse.monash.edu.au/~damian/) Object Oriented Perl. Книгата не е издавана в България, така че това е най-доброто, което можем да ползваме. (за тези, които се интересуват, книгата може да бъде поръчана от някои български книжарници)

Има един курс по Пърл, който излиза на първата страница при търсене в гуугъл - от авторите Paul Fenwick и Jacinta Richardson. Ако искате може да го погледнете, но извадката от Дамиан Конуей за обектно ориентирания Пърл е достатъчна за целите на курса (и вашите проекти).

http://stein.cshl.org/genome_informatics/perl_objects.pdf
От този адрес можете да изтеглите слайдовете на Brian O'Connor от UCLA (Университета на Калифорния в Лос Анджелес) има някои прости примери за обекти.

Някои от вас ме питаха за книги за курса. Бях ги написал в анотацията на курса в сайта на ФМИ, но ще ги повторя тук: Едната е Programming for Linguists: Perl for Language Researchers на Michael Hammond, другата е Object Oriented Perl на Dr. Damian Conway. Потърсете в гуугъл за първата книга.  Изтеглете си и слайдовете на Майкъл Хамонд  (Университет на Аризона) (http://dingo.sbs.arizona.edu/~hammond/) от този адрес:
http://dingo.sbs.arizona.edu/~hammond/bslides.pdf

Сега за проектите:
Към проекта за резюмирането се присъединиха:
С.А. и Р.Г.

Все още има хора, които не са взели проект!!!  Още места има за проектите за резюмирането, клаузите, POS tagging и за полетите (data mining).

Следващия път хората от всеки проект трябва да подготвят и изнесат презентация за техния проект.

За студентите от проекта за резюмиране: Лекциите, които ви бях обещал могат да бъдат изтеглени от сайта на Horacio Saggion от Унивеситета в Шефилд (http://www.dcs.shef.ac.uk/~saggion/) http://www.dcs.shef.ac.uk/~saggion/saggion-esslli-2005.ppt
Ако използвате нещо от слайдовете във вашата презентация, цитирайте.

поздрави:
а.
Активен

artanis

  • Неактивен Неактивен
  • Публикации: 589
    • http://free.hit.bg/artanis
Re: Perl за лингвисти - практикум
« Отговор #8 -: 04.02.2006, 19:08:31 »

Здравейте,

Слайдовете от последната седмица в по-голямата си част са от книгата Corpus Linguistics от Tony McEnery и Andrew Wilson от Университета в Ланкастър, Обединено Кралство, http://bowland-files.lancs.ac.uk/monkey/ihe/linguistics/contents.htm

Слайдовете от последния път можете да изтеглите от:  http://web.hit.bg/chanev/PFLLectureNotes/notesPerl4.pdf

Казах, че ще включа слайдове за различните видове анотации, но после сметнах, че е по-добре да проверите това от страницата на оригиналната книга:
http://bowland-files.lancs.ac.uk/monkey/ihe/linguistics/corpus2/2fra1.htm

Новото през последната седмица беше, че двама колеги се присъединиха към проекта за клаузите. Това са: В.А. и Р.И.

Преди време бях обещал да предоставя една програма, която може да се използва в проекта за турски. Не успях да намеря точно тази програма, но в програмата по-долу се използва същия подход (многомерни масиви). След това, прилагам един клас - word.pm (освен, че би бил много полезен за вашите проекти, това е и класът word, който се използва в програмата).

========================extractFrequency2.pl
use word;
#извинявам се за имената на променливите на български и на английски
#добре е имената на променливите да имат значение само на един език

sub returnUniqueArray
{
   my @arrToReturn = ();
   return @arrToReturn;
}

sub getFirstParameter
{
   my $word = shift;
   if(length($word)>9)
   {
      return 9;
   }
   else
   {
      return length($word)-1;
   }
}

sub getCode
{
   my $letter = substr(shift,0,1);
   if((ord($letter)>96) && (ord($letter)<123))
   {
      return ord($letter)-97;
   }
   elsif((ord($letter)>223) && (ord($letter)<251))
   {
      return ord($letter)-198;
   }
   elsif(ord($letter)==252)
   {
      return 53;
   }
   elsif(ord($letter)==254)
   {
      return 54;
   }
   elsif(ord($letter)==255)
   {
      return 55;
   }
   else
   {
      return 56;
   }
}

sub ishere
{
   my $ret = -1;
   my $counter = 0;
   my $word = shift;
   my @mass = @_;
   foreach(@mass)
   {
      if($word eq $_->getWord)
      {
         $ret = $counter;
      }
      $counter++;
   }
   return $ret;
}

open(F, shift) or die("Ne moga da namerq faila za syjalenie");
open(E, shift) or die("Ne moga da namerq faila za syjalenie");

for $i (0..9) {
   for $j (0..56) {
      $vsichko[$i][$j] = [];
   }
}

$broiach = 0;

while(<E>)
{
   $line=$_;
   chomp($line);
   $line=~ /(.*?)\s(.*?$)/;
   $dumata = $1;
   $occurences = $2;

   $novaDuma = word->new($dumata);
   $novaDuma->setOcc($occurences);

   push(@{$vsichko[getFirstParameter($dumata)]->[getCode($dumata)]}, $novaDuma);
}

while(<F>)
{
#   print $broiach++, "\n";
   $line=$_;
   chomp($line);
   $line=~ /(.*?)\s(.*?$)/;
   $dumata = $1;
   $occurences = $2;
   $no = ishere($dumata, @{$vsichko[getFirstParameter($dumata)]->[getCode($dumata)]});
   if($no > -1)
   {
      $staraStoinost = $vsichko[getFirstParameter($dumata)]->[getCode($dumata)]->[$no]->getOcc();
      $vsichko[getFirstParameter($dumata)]->[getCode($dumata)]->[$no]->setOcc($staraStoinost+$occurences);
   }
   else
   {
      $novaDuma = word->new($dumata);
      $novaDuma->setOcc($occurences);
      push(@{$vsichko[getFirstParameter($dumata)]->[getCode($dumata)]}, $novaDuma);
   }
}

close(F);
close(E);

for($i = 0; $i <= 9; $i++)
{
   for($j = 0; $j <= 56; $j++)
   {
      foreach(@{$vsichko[$i]->[$j]})
      {
         print $_->getWord, " ", $_->getOcc, "\n";
      }
   }
}
========================

========================word.pm
package word;
#use strict;

sub new
{
   my $class = $_[0];
   my $rl = $_[1];

   my $objref =
   {
      _theWord => $rl,
      _occurences => 1
   };
   bless $objref, $class;
   return $objref;
};

sub getWord{ $_[0]->{_theWord} };
sub getOcc{ $_[0]->{_occurences} };
sub incOcc{ $_[0]->{_occurences}++ };
sub setOcc{ $_[0]->{_occurences}=$_[1] };

1;
========================

поздрави:
а.
« Последна редакция: 04.02.2006, 19:23:36 от artanis »
Активен

Tosh

  • Неактивен Неактивен
  • Публикации: 249
  • Filmmaker
    • Изследванията на Тодор Арнаудов
Re: Perl за лингвисти - практикум
« Отговор #9 -: 06.02.2006, 21:33:54 »

Здравейте

Искам да обърна внимание върху явлението "блог" и процесът на "блогване" (моите термини са "споделище, споделник, споделня,  и споделяне ).

Блоговете са щедър източник на безплатни монолози и диалози, от тях могат да се градят корпуси и да се правят анализи. Освен това, много споделчовци обожават да споделят мнението си, и вероятно с удоволствие биха участвали в изследвания на езикови процеси, напр.  генериране на текст по сюжетен/тематичен/речников (ключови думи) скелет. :)

Има ли българска корпусна лингвистика,  книжни и компютризирани анотирани и неанотирани корпуси за български?

Поздрави
Активен
Творчество и изследвания:
http://twenkid.com
http://artificial-mind.blogspot.com

Емил Дойчев

  • Неактивен Неактивен
  • Публикации: 278
Re: Perl за лингвисти - практикум
« Отговор #10 -: 06.02.2006, 22:11:27 »

Има ли българска корпусна лингвистика,  книжни и компютризирани анотирани и неанотирани корпуси за български?

http://dcl.bas.bg/corpora_bg.html
Активен

artanis

  • Неактивен Неактивен
  • Публикации: 589
    • http://free.hit.bg/artanis
Re: Perl за лингвисти - практикум
« Отговор #11 -: 06.02.2006, 22:53:22 »

Препоръчвам този корпус (банка от дървета):

http://bultreebank.org/

поздрави:
а.
Активен

artanis

  • Неактивен Неактивен
  • Публикации: 589
    • http://free.hit.bg/artanis
Re: Perl за лингвисти - практикум
« Отговор #12 -: 11.02.2006, 00:10:22 »

За проекта за извличане на съдържанието от уеб страница, може да се започне от тук:

while(<>)
{
  $line=$_; chomp($line);
  $extract=$line;
  while($extract ne "")
  {
    if($extract=~m/^(.+?)<(.*?)>(.*)$/)
    { $extract=$3; print "$extract "; }
    elsif($extract=~m/^<(.*?)>(.*)$/)
    { $extract=$2; print "$extract "; }
    else { $extract=""; } # don't cycle too much
  }
}

поздрави:
а.
Активен

vocala

  • Неактивен Неактивен
  • Публикации: 31
  • May The Beer Be With Us
    • Строителен портал
Re: Perl за лингвисти - практикум
« Отговор #13 -: 11.02.2006, 07:44:02 »

Благодаря за кода, г-н Чанев.
Надявам се до следващото занятие проекта да е почти готов  :evil:
Активен
Национален строителен портал
http://bgstroitelstvo.com

Tosh

  • Неактивен Неактивен
  • Публикации: 249
  • Filmmaker
    • Изследванията на Тодор Арнаудов
Re: Perl за лингвисти - практикум
« Отговор #14 -: 15.02.2006, 23:22:57 »

Здравейте

Тази програмка извежда от този входен формат:

Io   Pron   2   SUBJ
devo   Modal   0   ROOT
t   Trace   2   EXTRA SUBJ
andare   Verb   2   OBJ
.   pt   2   SEPARATOR

файл без тагове:

Io
devo
andare
.

и файл с тагове Yes/No за следите :

Io   No
devo   No
andare   Yes
.   No


------> tr.pl <-----

 open (FI, "inp.txt") or die ("Oh!");
 open (FOT, ">out-tagged.txt") or die ("Oh!");
 open (FOUT, ">out-untagged.txt") or die ("Oh!");
 binmode(F);

 $isTrace="No";

 while (<FI>)
 {
 
   $line=$_;
   chomp($line);
   @arr = split("\t", "$line");
 
   if (@arr[0] =~m/t/)
   {
      $isTrace = "Yes";
      goto Next;
   }
 
     print @arr[0], "\t", $isTrace, "\n";
     print FOT  @arr[0], "\t", $isTrace, "\n";
     print FOUT @arr[0], "\n";
       
 $isTrace = "No";

 Next:
 
}

 close(FI);
 close(FOU);
 close(FOUT);
Активен
Творчество и изследвания:
http://twenkid.com
http://artificial-mind.blogspot.com

artanis

  • Неактивен Неактивен
  • Публикации: 589
    • http://free.hit.bg/artanis
Re: Perl за лингвисти - практикум
« Отговор #15 -: 16.02.2006, 01:17:07 »

Здрасти,

Ако искаш Пърл да смята някой от файловете за бинарен, дай го като аргумент на binmode. В програмата ти даваш на binmode файл F, който не си декларирал. В случая спокойно можеш да пропуснеш този ред.

Скриптът ти е грешен. Освен следите, ще изведе и всички думи, които съдържат буквата t. Можеш да използваш @arr[0] eq "t", но ако държиш непременно да използваш регулярен израз, той може да бъде m/^t$/. Така ще бъдеш сигурен, че думата е точно следа, а не някоя дума, която съдържа t.

goto и етикетите ги използваш на твой риск.

В началото на следващата седмица ще ти пратя данните върху които да пуснеш скрипта.

поздрави:
а.
Швеция
Активен

Tosh

  • Неактивен Неактивен
  • Публикации: 249
  • Filmmaker
    • Изследванията на Тодор Арнаудов
Re: Perl за лингвисти - практикум
« Отговор #16 -: 16.02.2006, 02:27:48 »

Здравей

Не бях се сетил да тествам с думи, съдържащи t. :)

Ето поправка по препоръките, май.

 open (FI, "inp.txt") or die ("Oh!");
 open (FOT, ">out-tagged.txt") or die ("Oh!");
 open (FOUT, ">out-untagged.txt") or die ("Oh!");

 $isTrace="No";

while (<FI>)
{
 $line=$_;
 chomp($line);
 @arr = split("\t", "$line");
 
 if (@arr[0] eq "t") {$isTrace = "Yes";}
  else

    {     
       print @arr[0], "\t", $isTrace, "\n";
       print FOUT @arr[0], "\n";
       print FOT  @arr[0], "\t", $isTrace, "\n";
       $isTrace = "No";
    }     
}

 close(FI);
 close(FOU);
 close(FOUT);


Поздрави
Активен
Творчество и изследвания:
http://twenkid.com
http://artificial-mind.blogspot.com

artanis

  • Неактивен Неактивен
  • Публикации: 589
    • http://free.hit.bg/artanis
Активен

artanis

  • Неактивен Неактивен
  • Публикации: 589
    • http://free.hit.bg/artanis
Re: Perl за лингвисти - практикум
« Отговор #18 -: 02.03.2006, 12:39:02 »

Здравейте,

Всеки студент от курса трябва да напише доклад в който да опише проблемът, предишна работа, резултатите, които е получил, насоки за бъдещи изследвания и използвана литература. Докладът трябва да бъде 4 страници А4 и може да бъде написан на Уърд, както и на ЛаТеК. Ползвайте темплейтите от LREC конференцията: http://www.lrec-conf.org/lrec2006/article.php3?id_article=26

Ако напишете доклада на ЛаТеК получавате половин единица повече за крайната оценка.

Докладите може да пишете на български или английски - както предпочитате. Ползвайте spell checker - препоръчвам ispell (вкл. за български).

поздрави:
Атанас Чанев
Активен

artanis

  • Неактивен Неактивен
  • Публикации: 589
    • http://free.hit.bg/artanis
Re: Perl за лингвисти - практикум
« Отговор #19 -: 11.03.2006, 11:56:14 »

Някои линкове за ЛаТеК:

http://www.latex-project.org/
http://www.maths.tcd.ie/~dwilkins/LaTeXPrimer/

Следващият път е последен. Ще бъда във ФМИ от 9:15 сутринта до 4:00 след обяд и ще приемам вашите проекти.

За съжаление вчера не успях да изнеса презентациите, защото предпочетохте да работите по проектите си. Тази, която започнах, можете да намерите на сайта на Марк Джонсън от Браун: http://www.cog.brown.edu/~mj/. Казва се: Slides  from my invited after-dinner talk at the ESSLLI 2005 summer school

Бях намислил да ви обясня поне какво е TF*IDF от слайдовете на професор Диаш от Университета в Бейра, но от проектите не остана време. Слайдовете можете да изтеглите от www.fmi-plovdiv.org/presentations/Dr. Dias's Presentation.ppt

За следващия път имаме още две теми, които смятам да минем накратко сутринта: мрежата като корпус и Пърл ТК графичен интерфейс.

поздрави:
а.
Активен