public class AddressMatch
extends com.supermap.data.InternalHandleDisposable
该类主要提供实现中文地址模糊匹配所必须的条件,包括使用的地址词典、数据集、参与匹配的字段;还提供了实现中文地址模糊匹配的方法。
中文地址模糊匹配的实现流程:
AddressMatch
类的 setSetting()
方法设置,包括使用的地址词典、数据集、参与匹配的字段;
AddressMatch
类的 load()
方法加载设置,才会使所做的设置生效,同时在加载的过程中,系统将对参与分析的数据集中指定的参与匹配的字段中的内容建立索引,同时对其进行分词,即将这些字段中存储的内容切分成有意义的词,而这一过程是基于地址词典进行的;AddressMatch
的 match()
方法,实现中文地址模糊匹配,搜索关键字的指定是在match(AddressMatchParameter parameter)
方法的 parameter 参数中指定的;注:地址词典
英文是以词为单位,词与词之间用空格隔开,例如【Thank you.】 计算机很容易通过空格来识别 you 是一个单词。而中文是以字为单位,通过字组成的句子来表述意思。例如,【我爱北京天安门】,计算机很难知道【天安门】是一个不能拆分的词,这就需要我们进行分词。把中文的汉字序列切分成有意义的词的过程,就是中文分词。而中文分词是基于地址词典进行的,地址词典就是一些有意义的词的集合。中文分词的准确与否,直接影响到中文地址模糊匹配结果的正确性和相关度的排序。
举例说明:【北京天安门】,如果地址词典里面有“北京”、“天安门”等词,则【北京天安门】就会被分词为“北京/ 天安门”。 只有输入 “北京”或“天安门”这两个词中的一个或两个都作为关键词进行搜索,“北京天安门”才能被匹配并搜索出来。
public AddressMatchResults AddressMatchExample(DatasetVector targetDataset, String fieldName, String dictionaryFile, String searchAddress) { //进行中文地址模糊匹配的设置 AddressMatchSetting addressMatchSettings = new AddressMatchSetting(); addressMatchSettings.addSearchData(targetDataset,fieldName); addressMatchSettings.setDictionaryFile (dictionaryFile); //设置进行中文地址模糊匹配操作时的参数 AddressMatchParameter addressMatchParam = new AddressMatchParameter(); addressMatchParam.addSearchDataset(targetDataset); addressMatchParam.setLocationReturn ( true); addressMatchParam.setResultCount (10); addressMatchParam.setSearchAddress (searchAddress); //加载设置的中文地址模糊匹配设置 AddressMatch addressMatch = new AddressMatch(); addressMatch.setSetting (addressMatchSettings); addressMatch.load(); //调用中文地址模糊匹配方法,返回匹配结果 AddressMatchResults addressMatchResults =addressMatch.match(addressMatchParam); return addressMatchResults; }
构造器和说明 |
---|
AddressMatch()
默认构造函数,构造一个 AddressMatch 新对象。
|
限定符和类型 | 方法和说明 |
---|---|
void |
dispose()
释放对象所占用的资源。
|
AddressMatchSetting |
getSetting()
返回中文地址模糊匹配设置对象。
|
boolean |
load()
加载中文地址模糊匹配的相关设置。
|
AddressMatchResults |
match(AddressMatchParameter parameter)
根据指定的中文地址模糊匹配参数对象进行实现地址匹配,返回地址匹配的结果。
|
String |
segmentAddress(String value)
根据地址词典对传入的中文地址进行分词,并返回分词的结果,在分词结果中将以“*”来分隔原中文地址中的各个词。
|
static void |
setIsDisposable(com.supermap.data.InternalHandleDisposable obj,
boolean disposable) |
void |
setSetting(AddressMatchSetting value)
设置中文地址模糊匹配设置对象。
|
public void dispose()
public AddressMatchSetting getSetting()
AddressMatchSetting
类。AddressMatchSetting
的默认值。public void setSetting(AddressMatchSetting value)
AddressMatchSetting
类。value
- 中文地址模糊匹配设置对象。public boolean load()
注:地址词典
英文是以词为单位,词与词之间用空格隔开,例如【Thank you.】 计算机很容易通过空格来识别 you 是一个单词。而中文是以字为单位,通过字组成的句子来表述意思。例如,【我爱北京天安门】,计算机很难知道【天安门】是一个不能拆分的词,这就需要我们进行分词。把中文的汉字序列切分成有意义的词的过程,就是中文分词。而中文分词是基于地址词典进行的,地址词典就是一些有意义的词的集合。中文分词的准确与否,直接影响到中文地址模糊匹配结果的正确性和相关度的排序。
举例说明:【北京天安门】,如果地址词典里面有“北京”、“天安门”等词,则【北京天安门】就会被分词为“北京/ 天安门”。 只有输入 “北京”或“天安门”这两个词中的一个或两个都作为关键词进行搜索,“北京天安门”才能被匹配并搜索出来。
public AddressMatchResults match(AddressMatchParameter parameter)
parameter
- 指定的中文地址模糊匹配参数类对象,该参数提供了待匹配的内容等,有关地址匹配参数的详情,请参见 AddressMatchParameter
类。AddressMatch
类的示例。public String segmentAddress(String value)
举例:”我爱北京天安门”,经过该方法分词后的结果字符串为:”我*爱*北京*天安门”。
注:地址词典
英文是以词为单位,词与词之间用空格隔开,例如【Thank you.】 计算机很容易通过空格来识别 you 是一个单词。而中文是以字为单位,通过字组成的句子来表述意思。例如,【我爱北京天安门】,计算机很难知道【天安门】是一个不能拆分的词,这就需要我们进行分词。把中文的汉字序列切分成有意义的词的过程,就是中文分词。而中文分词是基于地址词典进行的,地址词典就是一些有意义的词的集合。中文分词的准确与否,直接影响到中文地址模糊匹配结果的正确性和相关度的排序。
举例说明:【北京天安门】,如果地址词典里面有“北京”、“天安门”等词,则【北京天安门】就会被分词为“北京/ 天安门”。 只有输入 “北京”或“天安门”这两个词中的一个或两个都作为关键词进行搜索,“北京天安门”才能被匹配并搜索出来。
举例:我爱北京天安门,加入分隔符后:我*爱*北京*天安门。
value
- 指定的中文地址。public static void setIsDisposable(com.supermap.data.InternalHandleDisposable obj, boolean disposable)
Copyright © 2021–2024 SuperMap. All rights reserved.