Я думаю, что вы близки, но не совсем правы в своем диагнозе.Java всегда будет использовать первый экземпляр класса в вашем пути к классам.Однако, если у вас есть иерархия загрузчиков классов, и дочерний загрузчик классов пытается определить класс, который уже определен родителем, вы получите ошибку, подобную этой.
Я не знаком с NER или POS Stanfordкод.Однако я могу дать несколько советов.
Если вы убеждены классы с одинаковыми именами одинаковы в двух банках, тогда просто объедините две банки в одну банку - это будетудалите все дубликаты.
Если вы беспокоитесь, что код NER и POS может быть несовместим, я бы переместил исходный код для двух в один проект и перекомпилировал, тщательно осмотрев дубликаты.
Альтернатива - взять исходный код из одного проекта и переместить его в другой пакет, чтобы имена классов остались прежними, но пакеты больше не конфликтовали.Хорошая IDE должна быть в состоянии сделать это довольно безболезненно.
Однако для таких вопросов списки рассылки часто являются лучшим местом для советов: http://www -nlp.stanford.edu / software /CRF-NER.shtml .Я уверен, что вы не будете единственным человеком, который будет использовать эти части программного обеспечения вместе.Ни одно из решений, о которых я упоминал выше, не должно быть необходимым, поэтому, вероятно, лучше получить совет от кого-то, кто их использует.