RegEx для разделения текста с сокращениями на предложения - PullRequest
2 голосов
/ 07 марта 2019

У меня есть текст.Мне нужно получить список предложений.Есть много тонкостей, таких как точка, используемая в сокращениях.Я нашел это регулярное выражение

(?<!\w\.\w.)(?<![A-Z][a-z]\.)(?<=\.|\?)\s

Но он не работает правильно

Например, у меня есть этот текст:

Номер дома19 был очень стар.Люди говорили, что здесь живут призраки, но никто их никогда не видел.Однако его не называли «домом с привидениями»;год за годом оставалось: «Позволить или продать»

Агент дома мистер Раддиш был рад видеть, что миссис Ланкастер заинтересовалась этим домом.Но ее вопрос: «Сколько времени он был пустым?» Заставил его немного волноваться: «Э-э-э… когда-нибудь», - ответил он.1017 * Дом № 19 был очень старым.
Люди говорили, что там жили призраки, но никто их никогда не видел.
Однако его не называли «домом с привидениями»;год за годом оставалось: «Быть ​​пустым или проданным»

Агент по недвижимости мистер Раддиш был рад видеть, что миссис
Ланкастер заинтересовалась этим домом.
Но ее вопрос: «Сколько времени он был пустым?» Заставил его немного волноваться: «Э-э-э… когда-нибудь», - ответил он.

Как вы можете видеть, это раздельное предложение с миссис.Но я не хочу этого

Это должно выглядеть так:

Дом № 19 был очень стар.
Люди говорили, что там жили призраки, но никто никогда не имелвидел их.
Однако его не называли «домом с привидениями»;год за годом оставалось: «Быть ​​пустым или проданным»

Агент дома мистер Раддиш был рад видеть, что миссис Ланкастер заинтересовалась этим домом.
Но еевопрос: «Сколько времени он был пустым?» заставил его немного волноваться: «Э-э-э… когда-нибудь», - ответил он.

Может ли кто-нибудь помочь мне в этом?

1 Ответ

1 голос
/ 08 марта 2019

Спасибо за ответы, ребята.НЛП это фантастическое решение. ЗДЕСЬ является правильным решением:

const txt = `The house No. 19 was very old. People said that there lived ghosts but nobody had ever seen them. However, it wasn’t called a «haunted» house; year after year it remained: "To Be Let or Sold"

The house agent Mr. Raddish was glad to see that Mrs. Lancaster was interested in this house. But her question: «How long was it empty?» made him a little worried: «Er — er — some time,» he answered.`;
let sentences = nlp(txt).sentences().data()
for (var s of sentences) {
  document.body.innerHTML += s.text + "<br/>";
} 
<script src="https://unpkg.com/compromise@latest/builds/compromise.min.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...