AlphaGo都在使用的Python语言,是最接近AI的编程语言。
教育部考试中心近日发布了“关于全国计算机等级(NCRE)体系调整”的通知,决定自2018年3月起,在全国计算机二级考试中加入了“Python语言程序设计”科目。
9个月前,浙江省信息技术课程改革方案已经出台,Python确定进入浙江省信息技术教材,从2018年起浙江省信息技术教材编程语言将会从vb更换为Python。
小学生都开始学Python了,天呐撸,学习Python看完这些准没错。
安利一波书单
Python入门
《Python编程快速上手——让繁琐工作自动化》
作者:美AlSweigart(斯维加特)
Python3编程从入门到实践
亚马逊畅销Python编程图书
本书是一本面向实践的Python编程实用指南。本书不仅介绍了Python语言的基础知识,而且还通过项目实践教会读者如何应用这些知识和技能。本书的第一部分介绍了基本Python编程概念,第二部分介绍了一些不同的任务,通过编写Python程序,可以让计算机自动完成它们。第二部分的每一章都有一些项目程序,供读者学习。每章的末尾还提供了一些习题和深入的实践项目,帮助读者巩固所学的知识,附录部分提供了所有习题的解答。
《“笨办法”学Python(第3版)》
作者:美ZedAShaw
《“笨办法”学Python(第3版)》是一本Python入门书籍,适合对计算机了解不多,没有学过编程,但对编程感兴趣的读者学习使用。这本书以习题的方式引导读者一步一步学习编程,从简单的打印一直讲到完整项目的实现,让初学者从基础的编程技术入手,最终体验到软件开发的基本过程。
《“笨办法”学Python(第3版)》结构非常简单,共包括52个习题,其中26个覆盖了输入/输出、变量和函数三个主题,另外26个覆盖了一些比较高级的话题,如条件判断、循环、类和对象、代码测试及项目的实现等。每一章的格式基本相同,以代码习题开始,按照说明编写代码,运行并检查结果,然后再做附加练习。
《Python编程初学者指南》
作者:美MichaelDawson
《Python编程初学者指南》尝试以轻松有趣的方式来帮助初学者掌握Python语言和编程技能。全书共12章,每一章都会用一个完整的游戏来演示其中的关键知识点,并通过编写好玩的小软件这种方式来学习编程,引发读者的兴趣,降低学习的难度。每章最后都会对该章的知识点进行小结,还会给出一些小练习让读者试试身手。作者很巧妙的将所有编程知识嵌入到了这些例子中,真正做到了寓教于乐。
《数据结构(Python语言描述)》
作者:美KennethALambert(兰伯特)
在计算机科学中,数据结构是一门进阶性课程,概念抽象,难度较大。Python语言的语法简单,交互性强。用Python来讲解数据结构等主题,比C语言等实现起来更为容易,更为清晰。
本书第1章简单介绍了Python语言的基础知识和特性。第2章到第4章对抽象数据类型、数据结构、复杂度分析、数组和线性链表结构进行了详细介绍,第5章和第6章重点介绍了面向对象设计的相关知识、第5章包括接口和实现之间的重点差异、多态以及信息隐藏等内容,第6章主要讲解继承的相关知识,第7章到第9章以栈、队列和列表为代表,介绍了线性集合的相关知识。第10章介绍了各种树结构,第11章讲解了集和字典的相关内容,第12章介绍了图和图处理算法。每章最后,还给出了复习题和案例学习,帮助读者巩固和思考。
像计算机科学家一样思考Python》
作者:美AllenBDowney
本书按照培养读者像计算机科学家一样的思维方式的思路来教授Python语言编程。全书贯穿的主体是如何思考、设计、开发的方法,而具体的编程语言,只是提供一个具体场景方便介绍的媒介。并不是一本介绍语言的书,而是一本介绍编程思想的书。和其他编程设计语言书籍不同,它不拘泥于语言细节,而是尝试从初学者的角度出发,用生动的示例和丰富的练习来引导读者渐入佳境。
Python进阶
Python高级编程(第2版)》
作者:波兰MichaJaworski(贾沃斯基),法TarekZiadé(莱德)
本书基于Python35版本进行讲解,通过13章的内容,深度揭示了Python编程的高级技巧。本书从Python语言及其社区的现状开始介绍,对Python语法、命名规则、Python包的编写、部署代码、扩展程序开发、管理代码、文档编写、测试开发、代码优化、并发编程、设计模式等重要话题进行了全面系统化的讲解。
本书适合想要进一步提高自身Python编程技能的读者阅读,也适合对Python编程感兴趣的读者参考学习。全书结合典型且实用的开发案例,可以帮助读者创建高性能的、可靠且可维护的Python应用。
《Python高性能编程》
作者:美戈雷利克(MichaGorelick),欧日沃尔德(IanOzsvald)
本书共有12章,围绕如何进行代码优化和加快实际应用的运行速度进行详细讲解。本书主要包含以下主题:计算机内部结构的背景知识、列表和元组、字典和集合、迭代器和生成器、矩阵和矢量计算、并发、集群和工作队列等。最后,通过一系列真实案例展现了在应用场景中需要注意的问题。
本书适合初级和中级Python程序员、有一定Python语言基础想要得到进阶和提高的读者阅读
《Python极客项目编程》
作者:美MaheshVenkitachalam
Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。通过Python编程,我们能够解决现实生活中的很多任务。
本书通过14个有趣的项目,帮助和鼓励读者探索Python编程的世界。全书共14章,分别介绍了通过Python编程实现的一些有趣项目,包括解析iTunes播放列表、模拟人工生命、创建ASCII码艺术图、照片拼接、生成三维立体图、创建粒子模拟的烟花喷泉效果、实现立体光线投射算法,以及用Python结合Arino和树莓派等硬件的电子项目。本书并不介绍Python语言的基础知识,而是通过一系列不简单的项目,展示如何用Python来解决各种实际问题,以及如何使用一些流行的Python库。
《Python核心编程(第3版)》
作者:美WesleyChun(卫斯理春)
本书是经典畅销图书《Python核心编程(第二版)》的全新升级版本,总共分为3部分。第1部分讲解了Python的一些通用应用,包括正则表达式、网络编程、Internet客户端编程、多线程编程、GUI编程、数据库编程、MicrosoftOffice编程、扩展Python等内容。第2部分讲解了与Web开发相关的主题,包括Web客户端和服务器、CGI和WSGI相关的Web编程、DiangoWeb框架、云计算、高级Web服务。第3部分则为一个补充/实验章节,包括文本处理以及一些其他内容。
本书适合具有一定经验的Python开发人员阅读。
Python机器学习——预测分析核心算法》
作者:美MichaelBowles(鲍尔斯)
在学习和研究机器学习的时候,面临令人眼花缭乱的算法,机器学习新手往往会不知所措。本书从算法和Python语言实现的角度,帮助读者认识机器学习。
本书专注于两类核心的“算法族”,即惩罚线性回归和集成方法,并通过代码实例来展示所讨论的算法的使用原则。全书共分为7章,详细讨论了预测模型的两类核心算法、预测模型的构建、惩罚线性回归和集成方法的具体应用和实现。
《Python机器学习实践指南》
作者:美AlexanderTCombs
机器学习是近年来渐趋热门的一个领域,同时Python语言经过一段时间的发展也已逐渐成为主流的编程语言之一。本书结合了机器学习和Python语言两个热门的领域,通过利用两种核心的机器学习算法来将Python语言在数据分析方面的优势发挥到极致。
全书共有10章。第1章讲解了Python机器学习的生态系统,剩余9章介绍了众多与机器学习相关的算法,包括各类分类算法、数据可视化技术、推荐引擎等,主要包括机器学习在公寓、机票、IPO市场、新闻源、内容推广、股票市场、图像、聊天机器人和推荐引擎等方面的应用。
《精通Python自然语言处理》
作者:印度DeeptiChopra,NisheethJoshi,ItiMathur
自然语言处理是计算语言学和人工智能之中与人机交互相关的领域之一。
本书是学习自然语言处理的一本综合学习指南,介绍了如何用Python实现各种NLP任务,以帮助读者创建基于真实生活应用的项目。全书共10章,分别涉及字符串操作、统计语言建模、形态学、词性标注、语法解析、语义分析、情感分析、信息检索、语篇分析和NLP系统评估等主题。
本书适合熟悉Python语言并对自然语言处理开发有一定了解和兴趣的读者阅读参考。
Python数据科学指南》
作者:印度GopiSubramanian(萨伯拉曼尼安)
60多个实用的开发技巧,帮你探索Python及其强大的数据科学能力
Python作为一种高级程序设计语言,凭借其简洁、易读及可扩展性日渐成为程序设计领域备受推崇的语言,并成为数据科学家的首选之一。
本书详细介绍了Python在数据科学中的应用,包括数据探索、数据分析与挖掘、机器学习、大规模机器学习等主题。每一章都为读者提供了足够的数学知识和代码示例来理解不同深度的算法功能,帮助读者更好地掌握各个知识点。
本书内容结构清晰,示例完整,无论是数据科学领域的新手,还是经验丰富的数据科学家都将从中获益。
《用Python写网络爬虫》
作者:澳RichardLawson(理查德劳森)
本书讲解了如何使用Python来编写网络爬虫程序,内容包括网络爬虫简介,从页面中抓取数据的三种方法,提取缓存中的数据,使用多个线程和进程来进行并发抓取,如何抓取动态页面中的内容,与表单进行交互,处理页面中的验证码问题,以及使用Scarpy和Portia来进行数据抓取,并在最后使用本书介绍的数据抓取技术对几个真实的网站进行了抓取,旨在帮助读者活学活用书中介绍的技术。
本书适合有一定Python编程经验,而且对爬虫技术感兴趣的读者阅读。
《贝叶斯思维:统计建模的Python学习法》
作者:美AllenBDowney
这本书帮助那些希望用数学工具解决实际问题的人们,仅有的要求可能就是懂一点概率知识和程序设计。而贝叶斯方法是一种常见的利用概率学知识去解决不确定性问题的数学方法,对于一个计算机专业的人士,应当熟悉其应用在诸如机器翻译,语音识别,垃圾邮件检测等常见的计算机问题领域。
Python自然语言处理》
作者:美StevenBird,EwanKlein,EdwardLoper
自然语言处理(NaturalLanguageProcessing,NLP)是计算机科学领域与人工智能领域中的一个重要方向。它研究能够实现人与计算机之间用自然语言进行有效通信的各种理论和方法,涉及所有用计算机对自然语言进行的操作。
《Python自然语言处理》是自然语言处理领域的一本实用入门指南,旨在帮助读者学习如何编写程序来分析书面语言。《Python自然语言处理》基于Python编程语言以及一个名为NLTK的自然语言工具包的开源库,但并不要求读者有Python编程的经验。全书共11章,按照难易程度顺序编排。第1章到第3章介绍了语言处理的基础,讲述如何使用小的Python程序分析感兴趣的文本信息。第4章讨论结构化程序设计,以巩固前面几章中介绍的编程要点。第5章到第7章介绍语言处理的基本原理,包括标注、分类和信息提取等。第8章到第10章介绍了句子解析、句法结构识别和句意表达方法。第11章介绍了如何有效管理语言数据。后记部分简要讨论了NLP领域的过去和未来。
本书的实践性很强,包括上百个实际可用的例子和分级练习。可供读者用于自学,也可以作为自然语言处理或计算语言学课程的教科书,还可以作为人工智能、文本挖掘、语料库语言学等课程的补充读物。
Python数据分析》
作者:印尼IvanIdris
Python是一种多范型编程语言,既适用于面向对象的应用开发,又适合函数式设计模式。Python已经成为数据科学家进行数据分析、可视化以及机器学习的一种理想编程语言,它能帮助你快速提升工作效率。
本书将会带领新手熟悉Python数据分析相关领域的方方面面,从数据检索、清洗、操作、可视化、存储到高级分析和建模。同时,本书着重讲解一系列开源的Python模块,诸如NumPy、SciPy、matplotlib、pandas、IPython、Cython、scikit-learn和NLTK等。此外,本书还介绍了数据可视化、信号处理、时间序列分析、数据库、预测性分析和机器学习等主题。通过阅读本书,你将华丽变身数据分析高手。
仅仅有数据就要建模啊
鄙人觉得这是比较不现实的。首先就要看你所得的数据质量如何,而且心理学的建模是十分复杂的过程,现在最红的大概就是结构方程建模了。
如果你没有强有力的理论支持,只是凭空来做模型,那是要一步一步来做的。可能需要从最基础的路径分析开始,而比较简单的路径分析可能是不适合你用的,因为要有比较完善的理论模型。而如果你的数学功底很好,对结构方程建模很熟悉的话,可以试试这个方法。
文本词法分析的主要对象。
文本分析是将非结构化文本数据转换为有意义的数据进行分析的过程,以度量客户意见、产品评论、反馈,提供搜索工具、情感分析和实体建模,以支持基于事实的决策制定。文本分析使用了许多语言、统计和机器学习技术。文本分析包括从非结构化数据中检索信息,以及对输入文本进行结构化以得出模式和趋势,并对输出数据进行评估和解释的过程。它还包括词汇分析、分类、聚类、模式识别、标签、注释、信息提取、链接和关联分析、可视化和预测分析。
人工智能数据集主要分为以下四大类别:
分类数据集:分类数据集用于训练和评估分类模型。这类数据集包含已标记的样本,每个样本都与一个或多个类别相关联。例如,图像分类数据集包含图像样本和相应的标签,用于训练图像分类模型。
目标检测数据集:目标检测数据集用于训练和评估目标检测模型。这类数据集不仅包含图像样本,还包含每个样本中出现的目标的位置和边界框信息。目标检测模型可以通过这些数据来学习检测和定位图像中的特定目标。
语义分割数据集:语义分割数据集用于训练和评估语义分割模型。与目标检测不同,语义分割模型需要对图像中的每个像素进行分类,从而实现对图像的像素级别的分割。语义分割数据集提供了图像样本和每个像素的标签,用于模型学习图像中不同区域的语义信息。
序列数据集:序列数据集用于训练和评估序列模型,如自然语言处理(NLP)中的语言模型和机器翻译模型。这类数据集由文本、语音或其他连续序列组成,可以被模型用于学习序列之间的依赖关系和模式。
这些不同类型的数据集在人工智能领域中起着关键的作用,为模型的训练和评估提供了必要的输入。根据具体的任务和应用需求,选择适合的数据集对于开发和改进人工智能模型至关重要。
选择建模分析对象的时候可以从哪几个方面去把握如下:
1、定义目标:在分析数据建模之前,首先要确定自己的目标是什么,有针对性的给出需要实现的一系列目标,为自已建立一个目标标准,以便于找出最优的模型。
2、准备数据:准备数据是建立模型的前期工作,选择数据类型和质量要合适,过滤和剔除不必要的数据,以减少错误,规范化和清洁化数据,有效地提高模型效果和准确性。
3、寻找模型:数据分析建模是一个主客观互动的过程,要正确地给出正确的模型,以覆盖模型的范围,要么自选,要么使用既有的模型,但要清楚的了解模型的优劣方面,深入了解模型。
4、建模有效性验证:完成建模步骤,就需要对模型有效性进行验证。!验证时首先要验证模型的准确性,然后再验证模型的准确性和实用性,最后在它的预测能力上做出评估,以更好地完善模型。
5、改进建模:根据验证的结果,得到不同模型的比较,然后根据需求来进行模型改进模型的改进可以对参数进行调整,可以对模型的算法、代码等进行改进,也可以结合已有的模型来实现模型的优化。
:
建模常用方法:
1、类比法:数学建模的过程就是把实际问题经过分析、抽象、概括后,用数学语言、数学概念和数学符号表述成数学问题,而表述成什么样的问题取决于思考者解决问题的意图。
2、量纲分析法:量纲分析是20世纪初提出的在物理领域中建立数学模型的一种方法,它是在经验和实验的基础上,利用物理定律的量纲齐次性,确定各物理量之间的关系。
3、差分法:差分法的数学思想是通过taylor级数展开等方法把控制方程中的导数用网格节点上的函数值的差商代替进行离散,从而建立以网格节点上的值为未知数的方程组,将微分问题转化为代数问题,是建立离散动态系统数学模型的有效方法。
一、一般处理流程
语料获取 -> 文本预处理 -> 特征工程 -> 特征选择
1、语料获取
即需要处理的数据及用于模型训练的语料。
数据源可能来自网上爬取、资料积累、语料转换、OCR转换等,格式可能比较混乱。需要将url、时间、符号等无意义内容去除,留下质量相对较高的非结构化数据。
2、文本预处理
将含杂质、无序、不标准的自然语言文本转化为规则、易处理、标准的结构化文本。
①处理标点符号
可通过正则判定、现有工具(zhon包)等方式筛选清理标点符号。
②分词
将连续的自然语言文本,切分成具有语义合理性和完整性的词汇序列的过程。
一般看来英文较容易可通过空格符号分词,中文相对复杂,参考结巴分词、盘古分词、Ansj等工具。
常见的分词算法有:基于字符串匹配的分词方法、基于理解的分词方法、基于统计的分词方法和基于规则的分词方法,每种方法下面对应许多具体的算法。
③词性标注
为自然语言文本中的每个词汇赋予一个词性的过程,如名词、动词、副词等。可以把每个单词(和它周围的一些额外的单词用于上下文)输入预先训练的词性分类模型。
常用隐马尔科夫模型、N 元模型、决策树
④stop word
英文中含大量 a、the、and,中文含大量 的、是、了、啊,这些语气词、助词没有明显的实际意义,反而容易造成识别偏差,可适当进行过滤。
⑤词形还原
偏向于英文中,单数/复数,主动/被动,现在进行时/过去时/将来时等,还原为原型。
⑥统计词频
因为一些频率过高/过低的词是无效的,对模型帮助很小,还会被当做噪声,做个词频统计用于停用词表。
⑦给单词赋予id
给每一个单词一个id,用于构建词典,并将原来的句子替换成id的表现形式
⑧依存句法分析
通过分析句子中词与词之间的依存关系,从而捕捉到词语的句法结构信息(如主谓、动宾、定中等结构关系),并使用树状结构来表示句子的句法结构信息(如主谓宾、定状补等)。
3、特征工程
做完语料预处理之后,接下来需要考虑如何把分词之后的字和词语表示成计算机能够计算的类型。
如果要计算我们至少需要把中文分词的字符串转换成数字,确切的说应该是数学中的向量。有两种常用的表示模型分别是词袋模型和词向量。
①词向量
词向量是将字、词语转换成向量矩阵的计算模型。目前为止最常用的词表示方法是 One-hot,这种方法把每个词表示为一个很长的向量。
②词袋模型
即不考虑词语原本在句子中的顺序,直接将每一个词语或者符号统一放置在一个集合(如 list),然后按照计数的方式对出现的次数进行统计。统计词频这只是最基本的方式,TF-IDF 是词袋模型的一个经典用法。
常用的表示模型有:词袋模型(Bag of Word, BOW),比如:TF-IDF 算法;词向量,比如 one-hot 算法、word2vec 算法等。
4、特征选择
在文本挖掘相关问题中,特征工程也是必不可少的。在一个实际问题中,构造好的特征向量,是要选择合适的、表达能力强的特征。
举个自然语言处理中的例子来说,我们想衡量like这个词的极性(正向情感还是负向情感)。我们可以预先挑选一些正向情感的词,比如good。然后我们算like跟good的PMI,用到点互信息PMI这个指标来衡量两个事物之间的相关性。
特征选择是一个很有挑战的过程,更多的依赖于经验和专业知识,并且有很多现成的算法来进行特征的选择。目前,常见的特征选择方法主要有 DF、 MI、 IG、 CHI、WLLR、WFO 六种。
5、模型训练
在特征向量选择好了以后,接下来要做的事情是根据应用需求来训练模型,我们使用不同的模型,传统的有监督和无监督等机器学习模型,如 KNN、SVM、Naive Bayes、决策树、GBDT、K-means 等模型;深度学习模型比如 CNN、RNN、LSTM、 Seq2Seq、FastText、TextCNN 等。这些模型在分类、聚类、神经序列、情感分析等应用中都会用到。
当选择好模型后,则进行模型训练,其中包括了模型微调等。在模型训练的过程中要注意由于在训练集上表现很好,但在测试集上表现很差的过拟合问题以及模型不能很好地拟合数据的欠拟合问题。同时,也要防止出现梯度消失和梯度爆炸问题。
6、模型评估
在机器学习、数据挖掘、推荐系统完成建模之后,需要对模型的效果做评价。模型的评价指标主要有:错误率、精准度、准确率、召回率、F1 值、ROC 曲线、AUC 曲线等。
7、投产上线
模型的投产上线方式主要有两种:一种是线下训练模型,然后将模型进行线上部署提供服务;另一种是在线训练模型,在线训练完成后将模型 pickle 持久化,提供对外服务。
三、NLP应用方向
1、命名实体识别
指识别自然语言文本中具有特定意义的实体,主要包括人名、地名、机构名、时间日期等。
传统机器学习算法主要有HMM和CRF,深度学习常用QRNN、LSTM,当前主流的是基于bert的NER。
2、情感分析
文本情感分析和观点挖掘(Sentiment Analysis),又称意见挖掘(Opinion Mining)是自然语言处理领域的一个重要研究方向。简单而言,是对带有情感色彩的主观性文本进行分析、处理、归纳和推理的过程。
情感分析技术可以分为两类,一类是基于机器学习的方法,通过大量有标注、无标注的主观语料,使用统计机器学习算法,通过提取特征,进行文本情感分析。另一类是基于情感词典的方法,根据情感词典所提供的词的情感极性(正向、负向),从而进行不同粒度的(词语、短语、属性、句子、篇章)下的文本情感分析。
3、文章标签
文章标签是利用机器学习算法,对文章进行文字和语义的分析后,提取出若干个重要的词或者短语(关键短语)。关键短语是NLP基础的算法模块,有了关键短语,能为后续的搜索、推荐等更高级的应用提供有力的抓手。
适用场景:1、个性化推荐:通过对文章的标签计算,结合用户画像,精准的对用户进行个性化推荐;2、话题聚合:根据文章计算的标签,聚合相同标签的文章,便于用户对同一话题的文章进行全方位的信息阅读;3、搜索:使用中心词可以对query进行相似度计算、聚类、改写等,可以用于搜索相关性计算。
4、案件串并
①信息抽取
运用实体抽取、关系抽取,从案情中抽取关键信息,如从警情中可以抽取报警人项目、报警人电话、案发地址等信息
②实体对齐
相同的实体在不同的案情中会有不同的表述,会给串并带来困难。可针对地址、人名、组织名进行对齐处理。
③文本聚类
对于关键片段类信息,无法像实体那样对齐,需要借助文本聚类技术进行关联。
④构建图谱
将信息抽取结果存入图谱。每个警情id对应一个节点,实体、属性、关键片段作为节点,对齐的实体、同一类的文本存为同一个节点。
除了来自于从警情中抽取的信息,还可以将其他警务系统中存在的结构化数据导入(如来自户籍信息的人物关系),从而丰富图谱。
⑤图谱检索
完成以上工作,即完成了案件串并的必要基础建设,接下来通过图谱的查询功能自动完成案件的串并。首先需要设定串并的条件,案件串并的条件在警务实战中已有很多的积累,如“具有相似的作案手段”,又如“相似作案手段,嫌疑人有共同联系人”,只需要将这些条件用图谱查询语言表达出来。
1 基本型需求,这类需求是应该得到满足,有是应该的,没有是会引起用户不满;所以这类需求是比较重要也是需求挖掘和需求分析应当用心做好的,这是一个产品的基础。举例说明,聊天表情,几乎任何具备聊天场景的IM,都有发送表情的功能,输入法也开发了自己的默认表情,如果你设计一款新的APP,缺少了表情,可能会让用户不满。
2 期望型需求,在做用户调研或则访谈的时候,用户反馈如果有某个功能,该多好,当你想深入了解的时候,用户或客户自己也说不明白为什么需要这个功能,就是觉得如果你有,就很好,如果没有其实也影响不大;还有种可能,用户使用了竞品友商的产品,进行相互对比的时候,告诉你某某产品有这个功能,我觉得你们也应该有,这类需求属于期望型需求同时也属于基本型需求,所以这类需求不满足,会引起用户的不满,得到满足,会给产品加分但是不会太多。对于期望型需求,我曾经也纠结过苦恼过,也设计过原型,一直迟迟没有提交开发,这类需求收集到了可以提前准备,等时机成熟(有很多用户或则客户都提到这个需求)或则有开发资源的时候,再做。举个例子,我现在在做的是ToB的产品,是专业的销售人员、外勤人员的行为管理软件,提需求的大部分是后勤人员,他们的工作就是使用后台进行监督、管理、汇总等,尤其是刚刚使用我们产品,对考勤管理特别用心,每天都会盯着考勤查看谁请假、出差、迟到早退、各种异常,然后每月工资也会按照考勤来制定,问题来了,用户提到如果考勤能这样排版、这样汇总、如果能够在一个页面看到所有信息等等。其实这些需求都是某些用户频繁使用产品,遇到的麻烦和想偷懒所提出的,他们期望软件帮他们完成所有的工作,然后自己每天就是坐在电脑前静静的等待结果。这类需求,需要慎重容易导致产品变得越来越臃肿,为了满足了任何人的需求,反而满足不了任何人的需求。所以很多文章都提到,产品经理面对需求,需要做减法。期望型需求,就是考验产品经理做加法还是做减法的判断力。
3 兴奋型需求,让人出乎意料的产品属性,这类需求满足了会给产品增加不少魅力和好评。
1 生理上的需要:食物 / 水 / 睡眠 / 生理平衡 / 分泌 / 性 / 呼吸;对应的移动互联网产品有美团外卖、陌陌等。
2 安全上的需要:人身安全 / 健康保障 / 资源所有 / 财产安全 / 道德保障 / 工作保障 / 家庭安全;对应的移动互联网产品有支付宝、咕咚、乐运动、超级减肥王、动动记步、KEEP等。
3 情感和归属的需要:爱情 / 友情 / 性亲密;对应的移动互联网产品有珍爱网、世纪佳缘、生日管家、她趣等等。
4 尊重的需要:自我尊重 / 信心 / 成就 / 对他人尊重 / 被他人尊重;对应的移动互联网产品有新浪微博等。
5 自我实现的需要:道德 / 创造力 / 自觉性 / 问题解决能力 / 公正度 / 接受现实能力;对应的移动互联网产品有在行。
软件是一种特别的产品,随着规模和复杂性的进步以及应用领域的扩大逐渐形成了工程。
是计算机中与硬件相互依存的另一部分,包括程序、数据和说明文档。
程序是按照设计要求和性能指标设计的指令序列
数据是程序能够正常操纵信息的数据结构
说明文档是用于开发和维护软件程序的各种图文资料。
软件工程是软件的工程性方法,涵盖了所有生命周期,并提供了一整套工程性方法来指导软件开发。
软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法去进行软件的开发和维护的学科。
包含:1 软件开发技术 2 软件项目管理
软件工程三要素:方法、工具、过程
软件工程应包括的知识(10个):软件需求、软件设计、软件构建、软件维护、软件配置管理、软件工程管理、软件工程过程、软件工程工具和方法、软件质量
指计算机软件的开发和维护过程中所遇到了一系列严重问题。
包括分析、设计、实现、测试和维护等。
软件工程目标:正确性、可用性、费用合算
软件工程活动:需求、设计、实现、确认、支持
软件工程原则:适宜开发范型、合适设计方法、高质量工程支持
是为了获得高质量软件所需要完成的一系列步骤。
生命周期模型把生命周期划分成那些阶段以及执行顺序,也称为软件过程模型。
常见模型:瀑布模型、快速原型模型、增量模型、螺旋模型
应用场景: 大型软件项目;需求明确;需求变化少
特点:
优点:
缺点:
应用领域: 客户不熟悉软件、沟通理解困难
优点:
缺点
适用范围: 需求比较明确、架构稳定
优点:
缺点:
适用范围: 大型复杂的系统
优点:
缺点:
五个阶段: 规划、分析、设计、实施、运行维护
Jackson方法的表示: 顺序、选择、重复
自底向上的归纳、自顶向下的分解,尽可能运用人类自然思维方式
要点:
三大重要特征: 封装、继承、多态
基本概念: 对象、类、封装
核心概念: 对象、类
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)