加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Delphi 2009:在unicode utf-8中搜索跳过变音符号

发布时间:2020-12-15 09:26:41 所属栏目:大数据 来源:网络整理
导读:我有包含阿拉伯语文本的utf-8编码文件,我必须搜索它. 我的问题是变音符号,如何搜索跳过它们? 就像你在Internet Explorer中加载该文本(在HTML ofcourse中转换文本)一样,IE正在跳过那些变音符号? 有帮助吗? Edit1:只需按以下代码执行搜索: var m1 : TMemo
我有包含阿拉伯语文本的utf-8编码文件,我必须搜索它.

我的问题是变音符号,如何搜索跳过它们?

就像你在Internet Explorer中加载该文本(在HTML ofcourse中转换文本)一样,IE正在跳过那些变音符号?

有帮助吗?

Edit1:只需按以下代码执行搜索:

var m1 : TMemo; //contains utf-8 data)
     m2 : TMemo; // contains results

 ...

      m2.lines.BeginUpdate;
      for s in m1.Lines do
      begin
        if pos(eSearch.Text,s)>0 then
           begin
           m2.Lines.Add(s);
           end;
      end;
      m2.Lines.EndUpdate;

Edit2:unicode数据示例:

???????????
如果您只搜索没有变音符号的字母,则不会找到单词??.

解决方法

我发现变音符号不是唯一的问题.

我会做字符替换,用空字符串替换它们,我也会将文本标准化”””””””””””””””””””””””””””””””’ .

对于搜索我也会使用像“khoja stemmer”这样的轻型词干器(Java源码here)

更先进的方法是像TREC那样做:

>删除标点符号
>删除变音符号(主要是弱元音)大多数语料库都不包含弱元音.
>一些字典条目包含弱元音.这使一切都保持一致.
>删除非字母
>用裸露的alif.更换初始?或?
>用?替换?
>用?替换序列??
>用?替换final?
>用?替换最终é
>剥离6个前缀:明确的文章(??????,???,???,??,)和?
(和)从标准化词的开头
>从单词的末尾删除10个后缀:????,??,??,?,??,??,??

我会通过这个修改后的文本索引文本(对于备忘录,我将在原始文本中存储单词的索引),并为搜索查询执行相同的操作.

我也会在Memo1.Text中搜索而不是逐行搜索,搜索可以是多行,可以在一行的末尾并包装到下一行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读