python中index()的使用方法,机器学习独热编码的应用

index()方法描述

index()在python当中,不仅是字符串的类实例方法,也是列表list、元组tuple等类实例的方法,用途可谓十分广泛。index()可以用来返回特定元素在调用对象中的索引位置,通过object.index( arg )的方式进行引用(也可以三个参数),如果匹配到arg的元素,则返回值该元素在object中的索引位置,如果匹配不到,则python会抛出一个ValueError。正是因为这样的特性,index()方法常被应用于机器学习中词向量矩阵的独热编码。而什么是独热编码One-Hot编码呢?跟index()又有什么关系呢?


机器学习词向量和独热编码简介

词向量和One-Hot编码,(个人理解)即对搜集到的所有自然语言样本进行分词(通过NLP自然语言处理算法),然后去重,再集中在一个顺序固定的列表list当中,且称为词汇表,然后通过独热编码的方式(样本分词之后的每一个词在词汇表中出现,则在词汇表的一个copy中的该词出现的索引位置标记为1,否则标记为0,以此0和1构成稀疏矩阵,下面的实例将简单介绍一下),构建词向量矩阵,而寻找样本的词在词汇表中的索引位置便成为了构建词向量的关键的步骤之一,当然,再这之前,还需要判断该词是否在词汇表中,要不然直接使用index()寻找的话,要是不匹配,python会抛出ValueError。


index()方法参数

至少一个参数,指定所要匹配的元素;也可以指定起始位置和终止位置,即也可以是三个参数;

def index(self, sub: Text, __start: Optional[int] = ..., __end: O

index()方法返回值

索引位置值;


index()方法实例代码

>>> words = ['笨鸟','工具','x1y1z1.com','python','html','javascript']
>>> str = '学python到笨鸟工具'
>>> strlist = ['学','python','到','笨鸟','工具']
>>> strVec = [0]*len(words)
>>> strVec
[0, 0, 0, 0, 0, 0]
>>> for i in range(len(strlist)):
...     if strlist[i] in words:
...         strVec[words.index(strlist[i])] = 1
... 
>>> strVec
[1, 1, 0, 1, 0, 0]
>>> str.index()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: index() takes at least 1 argument (0 given)
>>> str.index('p',0,6)
1

代码解析

如上代码,1、从str到strlist这一步,是假设已经分词了,python的字符串分词可以使用一些成熟的开源的分词框架。其中words.index(strlist[i])通过index()查找对应“分词”在词汇表中的索引位置是关键的一步;2、当不给index()传递参数时,python抛出TypeError,并提示index()方法至少需要1个参数;3、index()可以接收三个参数,第一个位置参数是指定需要索引的元素,第二和第三则指定start和end的位置。



全栈后端 / python教程 :


























Copyright © 2022-2024 笨鸟工具 x1y1z1.com All Rights Reserved.