Мне нужно создать правило, в котором Lhs проверяет, начинается ли первый символ слова с b, а затем проверяет все слово без первого символа, найденного при поиске.
Как построить правила Jape в воротах
comment
Добро пожаловать на Stack Overflow, этот веб-сайт предназначен для энтузиастов и программистов, и мы будем рады помочь всем, кто застрял в программировании. Но для того, чтобы обратиться за помощью сюда, вам нужно продемонстрировать некоторый прогресс, которого вы добились в решении проблемы. С нуля вам никто не поможет.
- person RicoRicochet   schedule 19.01.2015
Ответы (1)
Это пример кода для чего-то похожего на то, что вы хотите (скопировано из https://gate.ac.uk/wiki/jape-repository/strings.html#section-1.). Вы можете прочитать немного больше и получить точное решение:
Rule:GetMobile
(
{Phone}
):tag
-->
:tag{
// get the offsets
Long phoneStart = tagAnnots.firstNode().getOffset();
Long phoneEnd = tagAnnots.lastNode().getOffset();
// check the number is longer than or equal to 2 characters (just in case)
if(phoneEnd - phoneStart >= 2) {
try {
String firstTwoChars = doc.getContent()
.getContent(tagAnnots.firstNode().getOffset(),
tagAnnots.firstNode().getOffset() + 2).toString();
// check it matches 07
if("07".equals(firstTwoChars)) {
// create the new annotation
gate.FeatureMap features = Factory.newFeatureMap();
features.put("kind", "mobile");
outputAS.add(tagAS.firstNode(),
tagAS.lastNode(), "Phone", features);
}
}
catch(InvalidOffsetException e) {
// not possible
throw new LuckyException("Invalid offset from annotation");
}
}
}
Вот некоторые места, где вы можете прочитать:
https://gate.ac.uk/wiki/jape-repository/
https://gate.ac.uk/sale/talks/gate-course-jun14/module-1-jape/module-1-jape.pdf
person
pnv
schedule
17.02.2015