当前位置: 首页 > news >正文

做盗版小说网站犯法吗网站建设开发方式

做盗版小说网站犯法吗,网站建设开发方式,全网优化推广公司,如何修改wordpress的域名数据识别场景 数据识别确实可以分为两种主要类型:直接识别和间接识别(或称为从文本中发现)。下面我将详细解释这两种类型: 直接识别: 定义:直接识别是指直接判断某个数据是否符合特定的标准或条件。应用场…

数据识别场景

数据识别确实可以分为两种主要类型:直接识别和间接识别(或称为从文本中发现)。下面我将详细解释这两种类型:

  1. 直接识别

    • 定义:直接识别是指直接判断某个数据是否符合特定的标准或条件。
    • 应用场景:例如,判断一个数字是否是偶数,或者判断一个字符串是否是有效的电子邮件地址。
    • 方法:通常使用规则或算法直接对数据进行检查,如使用正则表达式来验证电子邮件地址的格式。
  2. 间接识别(从文本中发现)

    • 定义:间接识别是指从一段文本中提取出符合特定条件的数据。
    • 应用场景:例如,从一篇新闻文章中提取出所有的日期,或者从社交媒体帖子中识别出所有的地理位置信息。
    • 方法:通常涉及自然语言处理(NLP)技术,如命名实体识别(NER)、关键词提取等。这些技术可以帮助从文本中识别和提取出特定的数据类型。

这两种方法在实际应用中常常结合使用,以提高数据识别的准确性和效率。例如,在处理大量文本数据时,可以先使用间接识别方法提取出潜在的相关数据,然后再使用直接识别方法对这些数据进行进一步的验证和分类。


直接识别和间接识别在代码处理方式上有所不同,以python代码识别email为例:

对于直接识别,正则表达式可以用 ^$ 限定正则的边界,保证正则表达式是完全匹配而不是匹配一部分,同时判断逻辑使用: re.match(PATTERN, TARGET) is not None

import redef is_valid_email(email):pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'return re.match(pattern, email) is not None# 示例
email = "example@example.com"
print(is_valid_email(email))  # 输出: True

对于间接识别,正则表达式不能使用^$,同时判断逻辑使用re.findall(PATTERN, TARGET) 返回所有匹配的结果

import redef extract_emails(text):pattern = r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}'return re.findall(pattern, text)# 示例
text = "Contact us at example@example.com or support@example.com"
print(extract_emails(text))  # 输出: ['example@example.com', 'support@example.com']

奇技淫巧

1. 限定识别对象的边界

例如,我要查找一个6位数号码,而实际数据中有超过6位数的号码,如果处理不当,会把长串数字中的6为子串提取出来,这显然是不对的。

def extract_bank_cards(text):pattern = '\d{6}'return re.findall(pattern, text)# 示例
text = "Bank cards: 123456, 1234567890123456, 1234567890123457"
print(extract_bank_cards(text))  # 输出: ['123456', '123456', '789012', '123456', '789012']

如何避免呢,使用正则的负向断言

这个正则表达式 (?<!\d)\d{6}(?!\d) 的含义是匹配一个六位数字,并且这个六位数字的前后都不能紧跟着其他数字。

让我们分解这个正则表达式:

  1. (?<!\d) 是一个负向前瞻断言(negative lookbehind assertion),表示在当前位置之前不能有数字。
  2. \d{6} 匹配六个连续的数字。
  3. (?!\d) 是一个负向后瞻断言(negative lookahead assertion),表示在当前位置之后不能有数字。

假设我们有以下文本:

123456 7890123 1234567 123456

使用正则表达式 (?<!\d)\d{6}(?!\d) 进行匹配:

import retext = "123456 7890123 1234567 123456"
pattern = r'(?<!\d)\d{6}(?!\d)'
matches = re.findall(pattern, text)
print(matches)  # 输出: ['123456', '123456']

在这个例子中,正则表达式匹配了两个 “123456”,因为它们的前后都没有紧跟着其他数字。而 “7890123” 和 “1234567” 没有被匹配,因为它们的前后都有其他数字。

注意:

  • 负向前瞻和负向后瞻断言不消耗字符,它们只检查特定条件是否满足。
  • 这个正则表达式适用于匹配独立的六位数字,而不包括其他数字。

通过使用这种正则表达式,可以精确地匹配特定格式的数字,避免匹配到不符合条件的数字序列。

2. 非捕获组

当写了一个非常复杂的正则表达式,里面用括号定义了很多捕获组(capturing group),直接使用findall可能捕获返回期望的结果。

import redef extract_url(text):pattern = 'https?://([\da-zA-Z_\.]+)(:\d+)?((/[a-zA-Z\d\.]+)+)?'return re.findall(pattern, text)# 示例
text = "url地址为:http://www.baidu.com:9090/hello/kugou"
print(extract_url(text))  # 输出: [('www.baidu.com', ':9090', '/hello/kugou', '/kugou')]

此时你需要将正则中的捕获组改成非捕获组,即把(...) 改写成 (?:...)

import redef extract_url(text):pattern = r'https?://(?:[\da-zA-Z_\.]+)(?::\d+)?(?:(?:/[a-zA-Z\d\.]+)+)?'return re.findall(pattern, text)# 示例
text = "url地址为:http://www.baidu.com:9090/hello/kugou"
print(extract_url(text))  # 输出: ['http://www.baidu.com:9090/hello/kugou']
http://www.15wanjia.com/news/175404.html

相关文章:

  • 冠县网站建设都江堰城乡建设局网站
  • iis网站连接数据库失败新网站建设市场
  • 网站做数据分析wordpress局部刷新
  • 桂林创新大厦网站12306网站是是阿里巴巴做的吗
  • 怎么直接用代码做网站苏州网站建设找苏州聚尚网络首选
  • 陕西省医院信息化建设规范与测评标准—网站建设评分标准与方法网站搜索查询
  • 网站制作新技术该产品在英文站及多语言网站
  • 攀枝花建设集团网站dw中怎样做网站二级页面
  • 网站菜单效果凡科官网首页
  • 网站建设公众网页设计制作基础
  • 海口的网站建设公司flex 做网站
  • 龙华营销型网站建设公司wap网站分享代码
  • 外国网站上做Task湖南建设网站公司
  • 临西网站建设价格深圳培训公司网站建设
  • 网站开发合同受托方做平面免费接单网站
  • 黄骗免费网站做文案公众号策划兼职网站
  • 古交市网站建设公司263个人登录入口
  • 新加坡建设网站简历模板网站免费
  • 深圳专业网站制作技术浙江省建设建材工会网站
  • 移动端模板网站建设网站制作说明
  • 网站301在哪做网站首页鲁大师
  • 网站建设jiq我的网站百度怎么搜索不到
  • 苏州网站建设设计制作公司怎么样室内设计平面布置图
  • 求网站晚上睡不着2021展示型网站php
  • 自己能网站建设建设学习网站
  • 单位门户网站建设存在问题企业网站排名提升
  • 扁平风格企业网站源码成都企业网站建设方案
  • 炫酷html5网站模板寿光人才网招聘网
  • 静态页优秀网站离婚证app制作软件
  • 做的网站没流量北京网站制作公司兴田德润在那里