Соответствие подстрокам от словаря до другой строки: предложения?

Привет люди Переполнения стека. Я хотел бы некоторые предложения относительно следующей проблемы. Я использую Java.

У меня есть массив № 1 со многими Строками. Например, две из строк могли бы быть: "Яблоко упало на главные" и "Яблоки Newton, растут на деревьях".

С другой стороны у меня есть другой массив № 2 с условиями как (Фрукты => Apple, Оранжевая, Персик; Объекты => Перо, Книга;...). Я назвал бы этот массив моим "словарем".

Путем сравнения объектов от одного массива до другого я должен видеть, в которой "категории" объекты от № 1 падают в от № 2. Например, Оба от № 1 подпали бы под "Фрукты".

Мой наиболее важный фактор является скоростью. Я должен сделать те операции быстро. Структура, позволяющая постоянное извлечение времени, была бы хороша.

Я считал Hashset с содержанием () методом, но это не позволяет подстроки. Я также пытался выполнить regex как (apple|orange|peach |... и т.д.) с нечувствительным к регистру флагом на, но я считал, что это не будет быстро, когда условия увеличатся численно (минимальные 200, которые будут ожидаться). Наконец, я искал и рассматриваю использование ArrayList с indexOf (), но я не знаю о его производительности. Я также должен знать, какое из условий на самом деле соответствовало, так в этом случае, это была бы "Apple".

Обеспечьте свои представления, идеи и предложения на этой проблеме.

Я видел алгоритм Aho-Corasick, но ключевые слова/условия, очень вероятно, будут часто изменяться. Таким образом, я не думаю, что могу использовать это. О, я не эксперт в анализе текста и математике, поэтому уточните сложные понятия.

Спасибо, люди Переполнения стека, в течение Вашего времени!:)

5
задан Inf.S 6 January 2010 в 15:30
поделиться