Я начал использовать код PRX в SAS для идентификации фраз свободного текста, введенных в базу данных, которую я использую. Типичная фраза, которую я идентифицирую, это: «положительный модифицированный тест Ходжа» или «положительный результат модифицированного теста Ходжа». Иногда эти фразы встроены в большие строки текста. Чего я не хочу отмечать, так это фраз, которые говорят «предыдущий положительный тест на ходж». Я читал некоторую документацию, чтобы реализовать отрицательный взгляд назад, чтобы НЕ помечать фразы, которые включают «предыдущий», но это не делает то, что я ожидал.
если 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 находится на начальной стадии, поэтому любые советы по его очистке/упрощению приветствуются.