Data.Text的区分大小写/不敏感的比较?

 CL_LC的小屋花_344 发布于 2023-01-06 17:03

我经常需要对具有区分大小写的不同要求的Data.Text值进行比较 - 当我使用chatter进行NLP任务时,这经常会出现.

例如,在搜索令牌以寻找信息提取任务时,我经常需要根据比标准字符串相等性更少限制的等式关系进行搜索.区分大小写是这些更改中最常见的,但它通常是特定标记的函数.像"激活"这样的术语通常可能是小写,但如果它是句子中的第一个单词,它将以一个主要资本开头,或者如果在标题文本中使用可能是全部大写或大写中句,那么忽略案例的比较是有道理的.相反,首字母缩略词(例如,"US")具有取决于大小写的不同语义.

这就是说我不能轻易地为每个相等类创建一个类型类包装器,因为它是一个价值驱动的方面.(所以不区分大小写的包看起来不像它会起作用).

到目前为止,我正在使用toLower规范表示,并比较这些表示,以便我可以创建带有敏感性标记的文本比较函数的自定义版本,例如:

matches :: CaseSensitive -> Text -> Text -> Bool
matches Sensitive   x y = x == y
matches Insensitive x y = (T.toLower x) == (T.toLower y)

但是,我担心这需要额外传递输入文本.我可以想象它在某些情况下融合,但可能不是全部(例如:T.isSuffixOf,T.isInfixOf).

有一个更好的方法吗?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有