搜索列表<String>在列表中<string>颤振中的模型

问题描述 投票:0回答:1

我一直在 Flutter 中从事一个类似 LLM 的非常简单的项目。我需要在列表数据中找到一个字符串列表,例如“我的讲座分数是多少”。但顺序并不重要。 如果我的搜索在其中一个句子列表中以任意顺序找到“what”、“is”、“my”、“lecture”、“score”,则结果将为 true,否则为 false。

这是我的句子列表:

class vaModel {
  final int id;
  final List<String> stringData;
  final String response;

vaModel({
  required this.id,
  required this.stringData,
  required this.response,
 });
}

这是该模型的数据:

import "package:flut2deneme/pages/vaModel.dart";

List<vaModel> vaData = [
 vaModel(id: 1, stringData: ["what", "my", "score", "lecture"], response: "load1"),
 vaModel(id: 2, stringData: ["total", "lectures", "hours", "week"], response: "load2"),
 vaModel(id: 3, stringData: ["how", "much", "cost"], response: "load3"),
 //other
];

例如,如果用户输入“本次讲座我的分数是多少”,则会在 vaData 列表中的 id:1 中返回“load1”。然而,由于顺序不同并且有更多其他单词,因此可以在数据列表中找到所需的单词(what、my、score、lecture)。如图所示,接收到的句子中还有其他单词,并且单词不按给定顺序排列,结果为 true,因为所有必需的单词都存在于第 1 项(id:1)中

也可以用在List<>的列表中搜索list<>来解释。

感谢您的支持。

flutter search arraylist
1个回答
0
投票

你可以做这样的事情

String? getResponse(String input){
  for (final model in vaData) {
    if (model.stringData.every((element) => input.toLowerCase().contains(element))) {
      return model.response;
    }
  }
  return null;
}

示例:

void main() {
  print(getResponse("What is my score in the lecture")); //load1
  print(getResponse("Score in the lecture what my")); // load1
  print(getResponse("Score in the  what my")); // null
  print(getResponse("How much does it cost?")); // load3
}
© www.soinside.com 2019 - 2024. All rights reserved.