前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【自然语言处理】NLP入门(一):1、正则表达式与Python中的实现(1):字符串构造、字符串截取

【自然语言处理】NLP入门(一):1、正则表达式与Python中的实现(1):字符串构造、字符串截取

作者头像
Qomolangma
发布2024-07-30 12:30:40
1190
发布2024-07-30 12:30:40
举报
文章被收录于专栏:自然语言处理深度学习

一、前言

语言是一种使用具有共同处理规则的沟通指令的广义概念,这些指令可以通过视觉、声音或触觉等方式传递。语言可以分为自然语言、动物语言和计算机语言。

自然语言是人类发展过程中形成的一种信息交流方式,它包括口语和书面语,并且反映了人类的思想。自然语言是通过语言习得和文化影响逐渐形成的,并且会随着时间的推移而自然地演化。人类使用自然语言进行沟通和表达时,利用语言中的词汇、语法和语义等元素来传递指令。通过自然语言,人们可以交流思想、传递信息、表达感情和进行社交互动。自然语言具有多样性和灵活性,不同的语言有着不同的特点和表达方式,这也反映了不同文化背景和社会环境对语言的影响。

自然语言处理(Natural Language Processing,NLP) 是一门研究通过建立形式化计算模型来分析、理解和生成自然语言的学科。它的终极目标是让计算机能够具备与人类进行自然语言交流的能力。NLP包含两大问题:

  • 自然语言理解:指让计算机能够理解和解释人类使用的自然语言。这包括对文本或语音进行语法分析、语义分析和语境推断等,从而能够理解句子的含义、语义以及上下文关系。
  • 自然语言生成:指让计算机能够生成符合语法和语义规则的自然语言文本或语音。这包括根据特定的输入或需求,将计算机所处理的信息转化为可读性高、呈现方式自然的自然语言表达形式。

  在自然语言处理领域,研究者们通过设计和开发各种算法、模型和技术,来实现自动处理自然语言的能力。这些技术可以应用于各种领域,比如机器翻译、情感分析、问题回答系统、语音识别和自动摘要等。

自然语言处理涉及字符串构造、截取与格式化输出等基础操作,本文将介绍使用引号构造字符串、字符串索引、切片操作等。

二、正则表达式与Python中的实现

前文:【深度学习】 Python 和 NumPy 系列教程(二):Python基本数据类型:3、字符串(索引、切片、运算、格式化)

1. 字符串构造

  在Python中字符串的构造,主要通过两种方法来实现,一是使用str函数,二是用单引号、双引号或三引号。在Python中,使用引号是一种非常便捷的构造字符串方式。

a. 使用str函数

str()函数是Python内置的函数,用于将其他类型的数据转换为字符串类型。例如:

代码语言:javascript
复制
num = 123
str1 = str(num)
print(str1)  # 输出:'123'
b. 单引号或双引号构造字符串
  • 在用单引号或双引号构造字符串时,要求引号成对出现
    • 如:‘Python World!’、‘ABC’、“what is your name?”,都是构造字符串的方法。
    • 'string"在Python中不是一个合法的字符串。
代码语言:javascript
复制
str2 = 'Python World!'
str3 = "ABC"
str_error = 'string"
c. 单双引号构造字符串的特殊用法
  • 如果代码中的字符串包含了单引号,且不用转义字符,那么整个字符串就要用双引号来构造,否则就会出错。
  • 如果代码中的字符串包含了双引号,且不用转义字符,那么整个字符串要用单引号来构造
代码语言:javascript
复制
"Let's go!"
代码语言:javascript
复制
print("Let's go!")
代码语言:javascript
复制
'Let's go!'
代码语言:javascript
复制
'" Hello world! ",he said. '
代码语言:javascript
复制
print('" Hello world!",he said. ') 
d. 三重引号字符串
  • 三重引号字符串是一种特殊的用法。三重引号将保留所有字符串的格式信息。 如字符串跨越多行,行与行之间的回车符、引号、制表符或者其他任何信息, 都将保存下来。在三重引号中可以自由的使用单引号和双引号

PS:打三次单引号就会自动识别出三引号

代码语言:javascript
复制
print('''"What's your name?""My name is Jone"''')
代码语言:javascript
复制
print('''"What's your name?"
"My name is Jone"''')
e. 典例

  编写程序,分别用双引号、单引号和三引号作为字符串边界符,实现语句 Let's say:"Hello World!" 的正确输出:

  • 程序代码
代码语言:javascript
复制
print("Let's say:\"Hello World!\"")
print('Let\'s say:"Hello World!"')
print('''Let's say:"Hello World!"''')
  • 运行结果

2. 字符串截取

  字符串的截取就是取出字符串中的子串。截取有两种方法:一种是索引str[index]取出单个 字符;另一种是切片str[[start]:[end]:[step]]取出一片字符。

  • 字符串的索引和切片方式与列表类似,索引从0开始,可以使用正向索引和反向索引:
a. 索引

  通过索引可以获取字符串中指定位置的单个字符。

代码语言:javascript
复制
s = 'student'
print(s[0])    # 输出: 's',获取第一个字符
print(s[-1])   # 输出: 't',获取倒数第一个字符
b. 切片

  切片用于获取字符串中一段连续的子串:

  • 模式:<字符串>begin: end: step
    • 左闭右开:以step为步长,取begin到end-1处的全部元素
    • step的正负性代表了方向:当step为负时,需要反向输出
    • 缺省值:begin=0;end=len(<字符串>);step=1
代码语言:javascript
复制
print(s[1:3])
  • 输出: tu,获取位置为1到位置为2的子串,不包括位置3的字符
代码语言:javascript
复制
print(s[:3])
  • 输出: stu,从头开始取到位置为2的子串
代码语言:javascript
复制
print(s[-2:])
  • 输出: nt,从倒数第二个位置开始取到结尾
代码语言:javascript
复制
print(s[:])
  • 输出: student,取出全部字符
代码语言:javascript
复制
print(s[::2])
  • 输出: suet,步长为2,每隔一个字符取一个
c. 注意事项
  • 字符串的切片操作不会修改原始字符串,而是返回一个新的字符串。
  • 字符串是不可变的数据类型,因此不能通过索引或切片的方式修改字符串的某个字符或子串,否则会抛出TypeError异常。
代码语言:javascript
复制
s[0] = 'e'
代码语言:javascript
复制
s[1:3] = 'ut'
代码语言:javascript
复制
TypeError: 'str' object does not support item assignment
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-07-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、正则表达式与Python中的实现
    • 1. 字符串构造
      • a. 使用str函数
      • b. 单引号或双引号构造字符串
      • c. 单双引号构造字符串的特殊用法
      • d. 三重引号字符串
      • e. 典例
    • 2. 字符串截取
      • a. 索引
      • b. 切片
      • c. 注意事项
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档