C#识别字符串中的是否有地名

冷月汀兰 2009-09-04 08:55:02
如题
C#识别字符串中的是否有地名?
并且把地名提取出来。
...全文
238 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
pppps 2009-09-05
  • 打赏
  • 举报
回复
这个 AI 中 有关这方面的思路.....建议绕过这个问题,这个实在是费力不讨好的问题。
wjn161 2009-09-04
  • 打赏
  • 举报
回复
帮顶,我的观点也是需要个匹配查询的库。至于用什么数据结构和用什么算法查询,那自然是你自己的选择了。
t6786780 2009-09-04
  • 打赏
  • 举报
回复
虽然城市多但是你要有个字典..至于选择集合你就要看你的需要..遍历所有元素数组是首选.. 如果要查找某一个元素那么就用HashTable集合了.. 还有就是如果你是初学者建议就不要牵扯算法了.. for循环if条件..越简单越好!!这样思路清晰, 慢慢积累自然就总结出更好的算法了... 这些都是需要平时点点滴滴积累的..也不能着急... 祝你好运!!
鸭梨山大帝 2009-09-04
  • 打赏
  • 举报
回复
顶,跟考试系统中的填空题跟问答题批改一样,每年一堆的博士/硕士论文,没一个突破的..

[Quote=引用 11 楼 wanghui0380 的回复:]
说实在话,这个东西没啥好算法滴

每年至少有上千篇的博士/硕士论文都在搞这方面的东西

模式匹配,聚类关联分析,蚁群算法,模拟退火算法----------可谁也没整出啥真正能用东西来
[/Quote]
enpeng 2009-09-04
  • 打赏
  • 举报
回复
学习下
wanghui0380 2009-09-04
  • 打赏
  • 举报
回复
说实在话,这个东西没啥好算法滴

每年至少有上千篇的博士/硕士论文都在搞这方面的东西

模式匹配,聚类关联分析,蚁群算法,模拟退火算法----------可谁也没整出啥真正能用东西来
castlooo 2009-09-04
  • 打赏
  • 举报
回复
List.Contains
pc_funning 2009-09-04
  • 打赏
  • 举报
回复
HashMap
wanghui0380 2009-09-04
  • 打赏
  • 举报
回复
词库比较好找,用搜狗输入法的地名库就成

至于查找,可以使用逐级的过滤的方式

先过滤出中文,然后配合语义分析,根据一些语法规则筛选出片段,比如:xx市,xx县
xxx发生,xx到yy, xx在yy,xxx路过yy,火车 从xxx至yyy 等

当然也有可能完全没有任何语义,只单纯的罗列地名滴情况,所以还在分析完语义后,把所有已经分析过的片段用特殊符号替换掉然后在总体过滤一到
wuyq11 2009-09-04
  • 打赏
  • 举报
回复
通过字符串正则获取中文,再查询是否为地名
string reg="(?<=^[^\']*?.*?)([\u4e00-\u9fa5]+)";
wuyq11 2009-09-04
  • 打赏
  • 举报
回复
Lit<string>包含地名,通过List.Contains查询是否存在
或通过优化查询方法实现如二分法等
t6786780 2009-09-04
  • 打赏
  • 举报
回复
把所有地名存放到一个数组中(建议用数组)。然后获取字符串根据你的地名的长度确定每次循环截取字符串的长度, 也就是说:在我的数组里有一个地名是4位的,3位的,2位的。。那么你在循环的时候就要这样
for (int i = 0; i < test.lengh; i++)
{
for (int j = 0; j < 地名数组[i].length; j++)
{
if (地名数组[i].substring(i, i + 2) == 获取的地名)
{
return true;
}//这里是用一个地名为二位的实例
}
}
当然这个循环算法复杂度比较大。。建议用递归或者折半算法。。自己去学一下。。只能给你指导下思路了。。
冷月汀兰 2009-09-04
  • 打赏
  • 举报
回复
中国 有 N 多个地名,遍历 速度 太慢 了,有没有 什么 更好 的 办法?
wuyi8808 2009-09-04
  • 打赏
  • 举报
回复
需要有地名库。
yzmsb 2009-09-04
  • 打赏
  • 举报
回复
建立地名。然后遍历吧?
ChrisAK 2009-09-04
  • 打赏
  • 举报
回复
这个...
需要事先建立字典吧...
一、简介 LJParser文本搜索与挖掘开发平台包括:全文精准搜索,新词发现,汉语分词标注,词语统计与术语翻译,自动聚类与热点发现,分类过滤,自动摘要,关键词提取,文档去重,正文提取等十余项功能。针对互联网内容处理的需要,融合了自然语言理解、网络搜索和文本挖掘的技术,提供了用于技术二次开发的基础工具集。开发平台由多个间件组成,各个间件API可以无缝地融合到客户的各类复杂应用系统之,可兼容Windows,Linux, Android,Maemo5, FreeBSD等不同操作系统平台,可以供Java,C,C#等各类开发语言使用。 LJParser是一套专门针对原始文本集进行处理和加工的软件,提供了间件处理效果的可视化展示,也可以作为小规模数据的处理加工工具。用户可以使用该软件对自己的数据进行处理。 二、功能 LJParser文本搜索与挖掘开发平台的十大功能: 1. 全文精准检索 支持文本、数字、日期、字符串等各种数据类型,多字段的高效搜索,支持AND/OR/NOT以及NEAR邻近等查询语法,支持维语、藏语、蒙语、阿拉伯、韩语等多种少数民族语言的检索。可以无缝地与现有文本处理系统与数据库系统融合。 2. 新词发现: 从文件集合挖掘出内涵的新词语列表,可以用于用户专业词典的编撰;还可以进一步编辑标注,导入分词词典,从而提高分词系统的准确度,并适应新的语言变化。 3. 分词标注: 对原始语料进行分词、自动识别人名地名机构名等未登录词、新词标注以及词性标注。并可在分析过程,导入用户定义的词典。 4. 统计分析与术语翻译 针对切分标注结果,系统可以自动地进行一元词频统计、二元词语转移概率统计(统计两个词左右连接的频次即概率)。针对常用的术语,会自动给出相应的英文解释。 5. 文本聚类及热点分析 能够从大规模数据自动分析出热点事件,并提供事件话题的关键特征描述。同时适用于长文本和短信、微博等短文本的热点分析。 6. 分类过滤 针对事先指定的规则和示例样本,系统自动从海量文档筛选出符合需求的样本。 7. 自动摘要 能够对单篇或多篇文章,自动提炼出内容的精华,方便用户快速浏览文本内容。 8. 关键词提取 能够对单篇文章或文章集合,提取出若干个代表文章心思想的词汇或短语,可用于精化阅读、语义查询和快速匹配等。 9. 文档去重 能够快速准确地判断文件集合或数据库是否存在相同或相似内容的记录,同时找出所有的重复记录。 10. HTML正文提取 自动剔除导航性质的网页,剔除网页的HTML标签和导航、广告等干扰性文字,返回有价值的正文内容。适用于大规模互联网信息的预处理和分析。 三、文件说明 1. LJParser.exe 可执行文件,本版本为试用版本,大规模语料处理需要购买正式版 2. 演示语料 演示用语料,用户可替换,必须为文本文件,演示只支持GBK;正式版本可以支持UTF-8编码; 3. 各种dll为各组件的调用接口,本演示程序全部基于已有的调用接口实现; 4. 文档说明,参见当前目录下的 5. 白皮书下载:http://www.lingjoin.com/download/LJParser%20Manual.doc 6. 软件下载:http://www.lingjoin.com/download/LJParser.rar

110,500

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧