Оптимизация соответствия ключевых слов (часть 0) - проблемы и идеи

Я столкнулся с требованием в моей работе регулировать конкретный словарный запас людей, вероятно, существует более 100 слов. Аналогично следующей ситуации (ключевые слова сложнее, чем названия мест)

Это было обработано, если еще раньше, псевдокод выглядит следующим образом:

string TempStr;
if(TempStr.Contains("海淀") && TempStr.Contains("北京") )
{
    return "北京市海淀区";
}
else if(TempStr.Contains("山东") && TempStr.Contains("威海") )
{
    return "山东省威海市";
}
……//等等一共两百多个else,内容也比较复杂,甚至还有正则匹配之类的
else
{
    return "匹配失败";
}

Поскольку моя работа состоит в том, чтобы написать плагин для Excel, это больше, чем сто, если это также влияет на эффективность работы, и это также очень неудобно поддерживать и трудно добавлять словарный запас.

В последние два дня я нашел некоторые полезные знания и планирую оптимизировать эту часть.Я использую метод tf-idf в nlp для вычисления сходства ключевых слов.

Весь процесс примерно такой: создание таблицы сопоставления ключевых слов в базе данных, чтение ее в виде словаря при запуске плагина, вычисление сходства и загрузка его в таблицу сопоставления, если запрос недоступен во время использования.

рекомендация

отwww.cnblogs.com/hewish/p/12682880.html