У меня есть медицинский словарь терминов, и эти термины могут быть комбинацией слов, таких как: [ Рак молочной железы или Рак простаты ] Или единичные, такие как [ Грудь и Простата и Рак ] или даже [ бета-клеточная опухоль поджелудочной железы ].
Мне нужно сосчитать слова в реферат статьи, которые есть в словаре, не считая их дважды, поэтому если я считаю рак молочной железы как
- , я не должен считать грудь или Рак индивидуально, когда они появляются вместе как дополнительный
- Я извлекаю слова из базы данных MS SQL, где я добавил столбец, который подсчитывает пробел между словами и сортируется по наибольшему до самых маленьких, а затем слово.
Что мне нужно сделать, так это когда я считаю слово, заменяю его пробелом или "", чтобы оно не было доступно для индивидуального подсчета. Меня не волнует текст в аннотации, который всегда можно обновить после.
Мой код VB. net в. Net WEB API:
While reader.Read '- -pulling words from database
word = reader("Word").ToString
Dim regex As Regex
If word.StartsWith("ER") Then
regex = New Regex("\s" + word + "\s", RegexOptions.None)
Else
regex = New Regex("\s" + word + "\s", RegexOptions.IgnoreCase)
End If
Dim regex As Regex = New Regex("\b(" + word + ")\b", RegexOptions.IgnoreCase)
Dim match As Match = regex.Match(abstractText)
If match.Success Then
TotalAbstractCount += regex.Matches(abstractText).Count
abstractCount += 1
abstractWords.Add(word)
abstractWordsCount.Add(word + " (" + count.ToString + ")")
' new code added to replace word/word string with blank
Dim regex2 = New Regex(word, RegexOptions.IgnoreCase)
abstractText = regex2.Replace(abstractText, " ")
End If
match = match.NextMatch()
End While
Используя этот код, есть ли место, где я могу обновить совпадение до пустой строки? Или мне нужно собрать al oop?
ОБНОВЛЕНИЕ: я просто добавил новый код regex2, но поскольку он вызывает новый regex для каждого слова, кажется, он замедляет весь процесс. Конечный пользователь ждет в режиме реального времени результатов. Весь процесс я не рассчитал, но похоже, что он увеличился с 1-1,5 секунды до 3-4.
Кроме того, если есть более быстрый способ сделать это на сервере MS SQL 2016 I Я открыт для этого.