При условии, что у вас достаточно обучающих данных с помеченными проектами программного обеспечения, которые были бы возможны.
Если вы используете Lingpipe, я бы использовал модель n-грамм символов в качестве первого варианта для вашей задачи. Они просты и обычно делают работу. Если результаты недостаточно хороши, некоторые из стандартных функций NER:
- лексема
- часть речи (POS)
- капитализация
- punctuaction
- символьные подписи: вот некоторые идеи: (LUCENE -> AAAAAA -> A), (Lucene -> Aaaaaa -> Aa), (Lucene-core -> Aaaaa-aaaa -> Aa-a)
- также может быть полезно составить gazzeteer (список программных проектов), если вы можете получить его из Википедии, sourceforge или любого другого внутреннего ресурса.
Наконец, для каждого токена вы можете добавить контекстные функции, токены перед текущим (t-1, t-2 ...), токены после текущего (t + 1, t + 2 ...) в виде а также их биграмные комбинации (t-2 ^ t-1), (t + 1 ^ t + 2).