问题:
有data.txt文件,内容如下:
人工智能的定义可以分为两部分,即“人工”和“智能”。“人工”比较好理解,争议性也不大。有时我们会要考虑什么是人力所能及制造的,或者人自身的智能程度有没有高到可以创造人工智能的地步,等等。但总的来说,“人工系统”就是通常意义下的人工系统。
关于什么是“智能”,就问题多多了。这涉及到其它诸如意识(CONSCIOUSNESS)、自我(SELF)、思维(MIND)(包括无意识的思维(UNCONSCIOUS_MIND))等等问题。人唯一了解的智能是人本身的智能,这是普遍认同的观点。但是我们对我们自身智能的理解都非常有限,对构成人的智能的必要元素也了解有限,所以就很难定义什么是“人工”制造的“智能”了。因此人工智能的研究往往涉及对人的智能本身的研究。其它关于动物或其它人造系统的智能也普遍被认为是人工智能相关的研究课题。
人工智能在计算机领域内,得到了愈加广泛的重视。并在机器人,经济政治决策,控制系统,仿真系统中得到应用。
尼尔逊教授对人工智能下了这样一个定义:“人工智能是关于知识的学科――怎样表示知识以及怎样获得知识并使用知识的科学。”而另一个美国麻省理工学院的温斯顿教授认为:“人工智能就是研究如何使计算机去做过去只有人才能做的智能工作。”这些说法反映了人工智能学科的基本思想和基本内容。即人工智能是研究人类智能活动的规律,构造具有一定智能的人工系统,研究如何让计算机去完成以往需要人的智力才能胜任的工作,也就是研究如何应用计算机的软硬件来模拟人类某些智能行为的基本理论、方法和技术。
人工智能是计算机学科的一个分支,二十世纪七十年代以来被称为世界三大尖端技术之一(空间技术、能源技术、人工智能)。也被认为是二十一世纪三大尖端技术(基因工程、纳米科学、人工智能)之一。这是因为近三十年来它获得了迅速的发展,在很多学科领域都获得了广泛应用,并取得了丰硕的成果,人工智能已逐步成为一个独立的分支,无论在理论和实践上都已自成一个系统。
人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,主要包括计算机实现智能的原理、制造类似于人脑智能的计算机,使计算机能实现更高层次的应用。人工智能将涉及到计算机科学、心理学、哲学和语言学等学科。可以说几乎是自然科学和社会科学的所有学科,其范围已远远超出了计算机科学的范畴,人工智能与思维科学的关系是实践和理论的关系,人工智能是处于思维科学的技术应用层次,是它的一个应用分支。从思维观点看,人工智能不仅限于逻辑思维,要考虑形象思维、灵感思维才能促进人工智能的突破性的发展,数学常被认为是多种学科的基础科学,数学也进入语言、思维领域,人工智能学科也必须借用数学工具,数学不仅在标准逻辑、模糊数学等范围发挥作用,数学进入人工智能学科,它们将互相促进而更快地发展。
利用jieba库实现中文分词。对分词后的列表进行去重处理,然后将分词结果中字符数大于等于3的词语写入到文件out.txt文件中。out.txt文件中每一行是分词后的一个词语。形式如下所示:
二十一
美国麻省理工学院
语言学
形象思维
突破性
总的来说
思维科学
软硬件
尼尔逊
温斯顿
机器人
......
解答:
import jieba #导入结巴库
p = open('data.txt','r',encoding = 'utf-8') #打开文件 'r'
q = open('out.txt','w',encoding = 'utf-8') #写入文件 'w'
ls = [] #建立空列表
for txt in p.readlines():
words = jieba.lcut(txt) #jieba 精确模式分词
for word in words:
ls.append(word) #分词结果保存在列表中
ls.sort() #列表排序
s = set(ls) #将列表转化为集合,去重
ls = list(s) #集合重新变成列表
for i in ls :
if len(i) >=3: #遍历列表,输出字符长度大于等于3的,写入out.txt文件
q.write(i)
q.write('\n')
p.close()
q.close()
输出:
心理学
自然科学
是因为
力所能及
无意识
能源技术
社会科学
UNCONSCIOUS
尼尔逊
思维科学
研究课题
发挥作用
总的来说
高层次
争议性
有没有
CONSCIOUSNESS
互相促进
人工智能
突破性
尖端技术
广泛应用
MIND
逻辑思维
计算机
控制系统
SELF
基础科学
机器人
模糊数学
美国麻省理工学院
计算机科学
语言学
温斯顿
七十年代
基因工程
软硬件
三十年
计算机领域
二十世纪
形象思维
思维过程
二十一
问题:
键盘输入一句话,用jieba 分词后,将切分的词组按照在原话中的逆序输出到屏幕上,词组中间没有空格。示例如下:
输入:我爱妈妈
输出:妈妈爱我
解答:
#方法一:
import jieba
str = input()
ls = jieba.lcut(str)
##print(ls)
for i in ls[::-1]: #逆序输出
print(i,end = '') # end定义输出后词组间无空格。默认换行
#方法二:
import jieba
str = input()
ls = jieba.lcut(str)
new_ls = []
for i in range(len(ls)):
a = ls.pop()
new_ls.append(a)
for i in new_ls:
print(i,end = '')
输出:
总结:
1、结巴分词有三种模式:精确模式、全模式、搜索引擎模式。
jieba.lcut(s):精确模式,返回一个列表类型的分词结果。
jieba.lcut(s,cut_all=True):全模式,返回一个列表类型的分词结果,存在冗余。
jieba.lcut_for_search(s):搜索引擎模式,返回一个列表类型的分词结果,存在冗余。
例如:
import jieba
s = '我是中国人,我爱我的祖国。'
print(jieba.lcut(s))
print(jieba.lcut(s,cut_all=True))
print(jieba.lcut_for_search(s))
输出为:
['我', '是', '中国', '人', ',', '我', '爱', '我', '的', '祖国', '。']
['我', '是', '中国', '国人', ',', '我', '爱', '我', '的', '祖国', '。']
['我', '是', '中国', '人', ',', '我', '爱', '我', '的', '祖国', '。']
2、集合set()可实现数据去重功能
3、读文件是'r',文件存在读取,文件不存在出错;
写文件是'w',文件存在清空重新写入,文件不存在新建文件。
4、列表逆序输出方法:ls[::-1]
或用列表.pop()和.append()方法
来源:CSDN
作者:Ailah_H
链接:https://blog.csdn.net/H_lukong/article/details/104730841