2013-07-03 13 views
5

Mam kilka uporządkowanych scenariuszy tekstowych, sformatowanych jak przykład na końcu tego posta. Chciałbym przetworzyć każdy w jakimś formacie, gdzie:Jakie narzędzie do przetwarzania tekstu jest zalecane do analizowania scenariuszy?

  • Łatwo będzie podciągnąć tylko kierunki sceniczne, które dotyczą określonego miejsca.
  • Łatwo będzie wyciągnąć tylko dialog należący do określonej postaci.

Najbardziej oczywistym podejściem mogę myśleć korzysta sed lub perl lub php umieścić znaczniki div wokół każdego bloku z klas reprezentujących charakter, lokalizację, a czy to kierunki etapie lub dialogu. Następnie otwórz go jako stronę internetową i użyj jQuery, aby wyciągnąć to, co mnie interesuje. Ale to brzmi jak okrężna droga, a może to tylko dobry pomysł, ponieważ są to narzędzia, do których jestem przyzwyczajony do. Ale jestem pewien, że jest to powtarzający się problem, który został rozwiązany wcześniej, więc czy ktoś może polecić bardziej wydajny przepływ pracy, który może być użyty na Linuksie? Dzięki.

Oto wejście próbki:

 SOMEWHERE CORPORATION - OPTIONAL COMMENT 
     A guy named BOB is sitting at his computer. 

          BOB 
       Mmmm. Stackoverflow. I like. 

     Footsteps are heard approaching. 

          ALICE 
       Where's that report you said you'd have for me? 

     Closeup of clock ticking. 

          BOB (looking up) 
       Huh? What? 

          ALICE 
       Some more dialogue. 

     Some more stage directions. 

Oto co wyjściowa próbka może wyglądać następująco:

 <div class='scene somewhere_corporation'> 
     <div class='comment'>OPTIONAL COMMENT</div> 
     <div class='direction'>A guy named BOB is sitting at his computer.</div> 
     <div class='dialogue bob'>Mmmm. Stackoverflow. I like.</div> 
     <div class='direction'>Footsteps are heard approaching.</div> 
     <div class='dialogue alice'>Where's that report you said you'd have for me?</div> 
     <div class='direction'>Closeup of clock ticking.</div> 
     <div class='comment bob'>looking up</div> 
     <div class='dialogue bob'>Huh? What?</div> 
     <div class='dialogue alice'>Some more dialogue.</div> 
     <div class='direction'>Some more stage directions.</div> 
     </div> 

używam DOM jako przykład, ale znowu, tylko dlatego, że coś, co Rozumiesz. Jestem otwarty na wszystko, co uważane jest za najlepszą praktykę dla tego typu zadań przetwarzania tekstu, jeśli, jak podejrzewam, samodzielne wyskalowanie i jQuery nie są najlepszą praktyką. Dzięki.

+0

Czy próbujesz to zrobić w czasie rzeczywistym na stronie internetowej? Jedynym powodem, dla którego użyjesz jQuery, jest to, że ktoś wprowadził scenariusz do pola tekstowego i uzyskał natychmiastowy sygnał wyjściowy. –

+2

@ChristianStewart: Jeśli poprawnie zrozumiem OP, powód (y) sugeruje jQuery, że jest to dobre narzędzie do wydobywania zawartości (X) węzłów HTML na podstawie informacji o klasie lub ID. Jeśli masz młotek, wszystko wygląda jak gwóźdź;) – dodgethesteamroller

+0

Scenariusze to pliki tekstowe, które pobieram, to nie musi się zdarzyć w czasie rzeczywistym ani online. @dodgethesteamroller ma rację, to antypatia z młotkiem i gwoźdźem i staram się tego uniknąć, pytając o lepsze pomysły. – f1r3br4nd

Odpowiedz

0

Jeśli dane wejściowe nie są zbyt hałaśliwe, tj. Jeśli można ufać pewnym prawidłowościom, takim jak wcięcie, które jest większe w przypadku dialogów, a nie w komentarzach, użyłbym prostego kodu: Context Free Grammar. Masz dobre implementacje we wszystkich językach, a znajdziesz wiele informacji na temat SO.

Jeśli twoje dane wejściowe są bardzo różne, weź ścieżkę uczenia maszynowego, ale będziesz potrzebować dużej liczby wejść z potwierdzonymi przez człowieka wyjściami do treningu, co może być kłopotliwe.

W każdym razie nigdy nie używałbym wyrażeń regularnych do takich problemów.

2

Można użyć Celtx do import plain text scripts i eksportować je do formatu HTML (i RDF/XML dla metadanych) (zobacz ten i ten blog post, which describes the file structurerelated thread).

Inne edytory scenariuszy, takie jak Trelby, mogą oferować tę funkcję.


Istnieje również Fountain, zwykły tekst język znaczników dla scenariuszy. Oferują one libraries którego potęga (nie sprawdzić, czy oferują one coś dla importu i konwersji) użyć jako przyczyna:

Fontanna jest darmowy i open-source, z bibliotek, które sprawiają, że łatwo dodać obsługę w twoich aplikacjach.


Nawet jeśli te projekty nie mogą być wykorzystywane do swojej sprawy, można przynajmniej ponowne ich formatu wyjściowego.

Powiązane problemy