从一句话中提取地点信息

采用字符串匹配的方法提取句子中包含的地点信息(省市)

直接看代码:

private static final String[][] LOCATION = { { "上海", "浦东" }, { "北京 ", "朝阳" }, { "浙江", "杭州", "宁波" }, { "天津" },
		{ "四川", "成都" }, { "广东", "深圳", "广州" }, { "江苏", "南京", "苏州", "无锡" }, { "安徽", "合肥", "芜湖" }, { "湖北", "武汉" },
		{ "湖南", "长沙" }, { "福建", "厦门" } };

	public static String parseLocation(String str) {
		String result = "other";
		for (String[] l : LOCATION) {
			if ("other".equals(result)) {
				for (int i = 0; i < l.length; i++) {
					if (str.matches(".*" + l[i] + ".*")) {
						result = l[i];

					}
				}
			}
		}
		return result;
	}


单元测试:

@Test
	public void psrsertest() {
		System.out.println("Test begin");
		 List <String> strs=new ArrayList<String>(10);
		 strs.add("杭州市西苑");
		 strs.add("浙江省杭州市");
		 strs.add("广东省广州市");
		 strs.add("浙江杭州");
		 strs.add("上海市");
		 strs.add("北京上海");
		 strs.add("上海浦东区");
		 strs.add("上海南京路");
		 strs.add("安徽阜阳");
		 strs.add("南京");
		 strs.add("苏州市工业园区");
		 
		 
		 for(Iterator itor=strs.iterator();itor.hasNext();){
			 String st=(String)itor.next();
			 System.out.println(Localtion.parseLocation(st));
		 }
		
	}


转载于:https://my.oschina.net/PagodaTree/blog/598932

### 使用Python实现从句子中抽取三元组 为了从句子中提取三元组,可以采用自然语言处理(NLP)技术。具体来说,通过依赖句法分析树来定位主语、谓语和宾语的位置,并以此为基础形成三元组。 下面是一个基于`spaCy`库的代码示例,用于解析英文句子并从中抽取出(S, V, O)形式的三元组: ```python import spacy nlp = spacy.load('en_core_web_sm') def extract_triplets(sentence): doc = nlp(sentence) triplets = [] for token in doc: if "subj" in token.dep_ and token.head.pos_ == "VERB": subject = ''.join([e.text_with_ws for e in token.subtree]).strip() verb = token.head.text obj_list = [child for child in token.head.children if child.dep_.endswith("obj")] objects = [''.join([e.text_with_ws for e in o.subtree]).strip() for o in obj_list] for obj in objects: triplet = (subject, verb, obj) triplets.append(triplet) return triplets sentence = "The cat sat on the mat." triplets = extract_triplets(sentence) for t in triplets: print(t) ``` 上述代码加载了一个预训练好的英语模型,并定义了函数`extract_triplets()`用来接收一个字符串参数`sentence`作为输入[^3]。该函数内部会遍历文档对象中的每一个标记(token),当发现某个标记是动词(`token.head.pos_ == 'VERB'`)且其依存关系标签包含"subj"(即可能是主语)时,则尝试找到对应的宾语部分。最后返回由主体(subjects)、动作(verbs)以及客体(objects)组成的三元组列表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值