Обнаружение границ предложения в HTML

Мне нужно определить границы предложений в HTML. Существует множество программ для определения границ предложений (я использую java.text.BreakIterator), но все они предполагают обычный текст. HTML богаче этого и включает в себя некоторые подсказки о том, где прерываются предложения.

Например, <p>, <ul>/<li>, <td> и другие теги отмечают границы предложения или, по крайней мере, указывают, что предложение, вероятно, не выходит за их пределы. <b>, <i>, <em>, <span>, <a> и некоторые другие теги могут появляться внутри предложения.

Кто-нибудь знает о каком-либо программном обеспечении, которое использует разметку HTML в дополнение к обычным материалам NLP для определения границ предложений?


person ccleve    schedule 25.07.2012    source источник
comment
Можете ли вы объяснить, что вы подразумеваете под границей предложения? вы можете просто сделать массив таких тегов и найти по индексу или разбить на них весь документ.   -  person mrd081    schedule 25.07.2012
comment
Есть ли возможность сделать некоторую предварительную обработку? Например, заменить все теги контейнера (‹p› ‹div› ...) на . и удалите все остальные теги (‹b› ‹i› ... регулярное выражение: ‹.+?›), чтобы получить почти обычный текст.   -  person Jason Dunkelberger    schedule 25.07.2012
comment
Устранение неоднозначности границ предложений: en.wikipedia.org/wiki/Sentence_boundary_disambiguation Это хорошо известная проблема.   -  person ccleve    schedule 25.07.2012
comment
Да, я могу предварительно обработать. Вопрос в том, как? Какие теги что означают? Есть ли в HTML другие синтаксические особенности, о которых я не подумал? Я ищу решение проблемы, которую уже продумал кто-то другой.   -  person ccleve    schedule 25.07.2012
comment
См. мой ответ в stackoverflow.com/questions/11236328/, после того как вы получите текст содержимого, вы можете продолжить использовать обычные разделители предложений и токенизаторы.   -  person Kenston Choi    schedule 26.07.2012


Ответы (1)


Решение, которое я реализовал: 1. разделить документ на отдельные блоки по всем тегам html, кроме встроенных тегов (<i>, <b>, <span> и т. д.), 2. удалить встроенные теги из каждого блока, 3. найти предложения внутри каждого блока. используя традиционные методы.

person ccleve    schedule 03.10.2012