Я начал использовать код PRX в SAS, чтобы идентифицировать свободные текстовые фразы, введенные в базу данных, которую я использую.Типичная фраза, которую я определяю: «положительный модифицированный тест Ходжа» или «положительный для модифицированного теста Ходжа».Эти фразы иногда встраиваются в большие строки текста.То, что я не хочу отмечать, это фразы, которые говорят «предыдущий положительный тест Ходжа».Я прочитал некоторую документацию для реализации негативного взгляда за тем, чтобы НЕ помечать фразы, которые включают «предыдущий», но он не делает то, что я ожидал.
if prxmatch ("/ pos \ w + (for)? (By)? \ s? (the)? \ s? (modi | hod | mht) / i ")> 0 затем hodge_id = 1;
Приведенный выше код PRX будет соответствовать всем приведенным ниже фразам:« положительный модифицированный ход »«предыдущий положительный тест Ходжи», «подтвержденный положительный результат на карбапенемазу Ходжи», «положительный результат для модифицированного теста Ходжа», «положительный результат по измененному ходу»
if prxmatch("/pos\w+ (for)?(by)?\s?(the)?\s?(modi|hod|mht)/i") > 0 then
hodge_id = 1; /* Without lookback */
if prxmatch("/(?<!previous)\s*pos\w+ (for)?(by)?\s?(the)?\s?
(modi|hod|mht)/i") > 0 then hodge_id = 1; /* With lookbook */
Используя отрицательный обратный просмотр, я ожидаю пометить: «положительный измененный ход»«подтвержденный положительный результат карбапенемазы», «положительный результат для модифицированного теста Ходжа», «положительный результат от модифицированного теста»
, но не: «предыдущий положительный тест Ходжа»
В результате пропускается фраза, включающая«предыдущий», но также и первая фраза «позитивный модифицированный ход».
Мой PRX находится в начальной стадии, поэтому любые советы по его очистке / упрощению приветствуются.