Mar. 7th, 2008

Но медленно. Пока готовы основные части текстовых операций (текст, аннотация текстов, красивая печать аннотаций) и библиотеки для графематики, морфологии и синтаксиса (которые пришлось еще допиливать (что оказалось сложно) и писать к ним биндинги (что оказалось просто)), обертки над википедией (чтобы статьи доставать из нее) и над ОЕНТом, а также метод поиска текстовых входов в тексте. Из общих вещей осталось сохранением всех результатов в базу (либо через cl-sql, либо через elephant или что-то похожее). После этого можно приступать к экспериментам, что уже интереснее.
Вчера ускорил время работы этого метода с примерно 8 секунд до примерно 0.5 секунд на одну статью. Уже гораздо лучше. Надо подумать над тем, как это запустить на нескольких компах.


CL-USER> (defvar *text* (text-tags:make-string-text "Приступая к доказательству
следует безапелляционно заявить, что матожидание категорически стабилизирует
математический анализ, что известно даже школьникам.")) 
*TEXT*
CL-USER> (defvar *tags* (lemmatizer:lemmatize-text *text* (graphan:parse-graphan :russian *text*)))
*TAGS*
CL-USER> *tags*
(#<TEXT-TAGS:TAG [0, 9) 'Приступая' {TYPE => RUSSIAN-LEXEM, WORDS => ({ПРИСТУПАТЬ})}>
#<TEXT-TAGS:TAG [10, 11) 'к' {TYPE => RUSSIAN-LEXEM, WORDS => ({К})}>
#<TEXT-TAGS:TAG [12, 26) 'доказательству' {TYPE => RUSSIAN-LEXEM, WORDS => ({ДОКАЗАТЕЛЬСТВО})}>
#<TEXT-TAGS:TAG [27, 34) 'следует' {TYPE => RUSSIAN-LEXEM, WORDS => ({СЛЕДОВАТЬ} {СЛЕДОВАТЬ})}>
#<TEXT-TAGS:TAG [35, 50) 'безапелляционно' {TYPE => RUSSIAN-LEXEM, WORDS => ({БЕЗАПЕЛЛЯЦИОННЫЙ})}>
#<TEXT-TAGS:TAG [51, 58) 'заявить' {TYPE => RUSSIAN-LEXEM, WORDS => ({ЗАЯВИТЬ})}>
#<TEXT-TAGS:TAG [58, 59) ',' {TYPE => PUNCTUATION}>
#<TEXT-TAGS:TAG [60, 63) 'что' {TYPE => RUSSIAN-LEXEM, WORDS => ({ЧТО} {ЧТО} {ЧТО})}>
#<TEXT-TAGS:TAG [64, 75) 'матожидание' {TYPE => RUSSIAN-LEXEM, WORDS => ({МАТОЖИДАНИЕ})}>
#<TEXT-TAGS:TAG [76, 89) 'категорически' {TYPE => RUSSIAN-LEXEM, WORDS => ({КАТЕГОРИЧЕСКИ} {КАТЕГОРИЧЕСКИЙ})}>
#<TEXT-TAGS:TAG [90, 103) 'стабилизирует' {TYPE => RUSSIAN-LEXEM, WORDS => ({СТАБИЛИЗИРОВАТЬ})}>
#<TEXT-TAGS:TAG [104, 118) 'математический' {TYPE => RUSSIAN-LEXEM, WORDS => ({МАТЕМАТИЧЕСКИЙ})}>
#<TEXT-TAGS:TAG [119, 125) 'анализ' {TYPE => RUSSIAN-LEXEM, WORDS => ({АНАЛИЗ})}>
#<TEXT-TAGS:TAG [125, 126) ',' {TYPE => PUNCTUATION}>
#<TEXT-TAGS:TAG [127, 130) 'что' {TYPE => RUSSIAN-LEXEM, WORDS => ({ЧТО} {ЧТО} {ЧТО})}>
#<TEXT-TAGS:TAG [131, 139) 'известно' {TYPE => RUSSIAN-LEXEM, WORDS => ({ИЗВЕСТНЫЙ} {ИЗВЕСТНО} {ИЗВЕСТНО})}>
#<TEXT-TAGS:TAG [140, 144) 'даже' {TYPE => RUSSIAN-LEXEM, WORDS => ({ДАЖЕ} {ДАЖЕ})}>
#<TEXT-TAGS:TAG [145, 155) 'школьникам' {TYPE => RUSSIAN-LEXEM, WORDS => ({ШКОЛЬНИК})}>
#<TEXT-TAGS:TAG [0, 156) 'Приступая к ...' {TYPE => SENTENCE}>
#<TEXT-TAGS:TAG [155, 156) '.' {TYPE => PUNCTUATION}>)

Заодно только что дошло, откуда при цифровой обработке звука берутся комплексные числа.

Profile

dmitry_vk

April 2023

S M T W T F S
      1
234567 8
9101112131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Apr. 5th, 2026 07:15 pm
Powered by Dreamwidth Studios