一、营销创新的实现?
营销创新,是指企业采用了此前从未使用过的全新的营销概念或营销策略,主要涉及产品(服务)设计或包装、产品(服务)推广、产品(服务)销售渠道、产品(服务)定价等方面。不包括季节性、周期性变化和其他常规的营销方式变化。
此处的“新”是指它对本企业而言必须是新的,但对于其他企业或整个市场而言不一定是新的。
营销创新四大支点分别是树立正确的创新观念、培养营销思维、要有坚韧不拔的精神、要有严格的制度保障。
二、如何实现绿色创新?
绿色科技创新应突破传统科技的内涵,不再单纯以经济增长为唯一目标,而是紧紧围绕可持续发展的思想,充分考虑科技创新所能带来的经济效益、社会效益、生态效益.绿色科技创新必须通过建立有效的指标体系才能得到恰当的反映。
三、个人如何实现创新?
以下资料供参考如何开拓创新一、开拓创新要有创造意识和科学思维1、强化创造意识:
(1)创造意识要在竞争中培养。
(2)要敢于标新立异:第一要有创新精神,第二要有敏锐的发现问题的能力,第三要有敢于提出问题的勇气。
(3)要善于大胆设想 :第一要敢想,第二要会想。
2、确立科学思维:
(1)相似联想(2)发散思维(3)逆向思维(4)侧向思维(5)动态思维二、开拓创新要有坚定的信心和意志1、坚定信心,不断进取。
2、坚定意志,顽强奋斗。
3、当创新活动误入歧途,需要调整方向时,它能够强迫自己“转向”或“紧急刹车”。
四、如何实现理论创新和实践创新?
主要是理论创新和实践创新两个基本方面,它们集中体现了人类在认识世界和改造世界中的创新活动。
第一,实践创新为理论创新提供不竭的动力源泉。在理论创新与实践创新的相互关系中,实践创新具有基础性的意义。
第二,理论创新为实践创新提供科学的行动指南。理论创新不仅要以实践创新为基础,还要发挥科学的指导作用“反哺”实践。
第三,努力实现理论创新与实践创新的良性互动。理论创新与实践创新的良性互动,指理论创新与实践创新之间存在良好的、积极的相互作用和相互影响,或者说二者之间形成相互激发、共同促进的因果关系。
五、如何实现采购模式创新?
采购创新工作思路有:
开源:扩大供应商和选择范围;
节流:合理且严格控制采购成本;
风险控制:加强人员风险意识,进行法律及风险控制培训,强化风险控制制度建设;规范化;进取。
企业采购是现今市场经济下一种最主要最主流的采购。企业是大批量商品生产的主体。为了实现大批量产品的生产,也就需要大批量商品的采购。生产企业的生产,是以采购作为前提条件的。没有采购,生产就不能进行。
六、乡村教育如何实现创新?
学校首先要转变观念,意识到先进模式带来的优势,要建设和完善学校的信息网络环境,完善学校软件资源和教学信息资源的建设,并确保教学信息的安全,为新模式的采用搭建更好的平台。
教师也要及时跟上时代变化,积极参与到信息技术应用的相关培训中,提升应用新技术组织课堂教学的能力。
另外要及时和家长们沟通,及时反馈孩子在家的情况,共同努力提高学生的成绩。
七、聊天机器人连续对话用Python怎么实现?
我这里有一个用Python&深度学习创建聊天机器人的教程,是非常粗糙的聊天机器人,不知道对题主适不适用,下面是详细的教程。
这是成品的样子。
本教程包括以下七大部分:
- 库与数据
- 初始化聊天机器人
- 建立深度学习模型
- 构建聊天机器人用户界面
- 运行聊天机器人
- 结论
- 改进领域
如果您想更深入地了解该项目,或者想添加到代码中,请到GitHub上查看完整的存储库:https://github.com/jerrytigerxu/Simple-Python-Chatbot
一.库与数据
运行该项目的所有必需组件都在GitHub存储库上。随意派生存储库并将其克隆到本地计算机。以下是这些组件的快速分解:
- train_chatbot.py —用于将自然语言数据读入训练集中并使用Keras顺序神经网络创建模型的代码
- chatgui.py —用于基于模型的预测清理响应并创建用于与聊天机器人进行交互的图形界面的代码
- classes.pkl —不同类型的响应类别的列表
- words.pkl —可以用于模式识别的不同单词的列表
- intents.json — JavaScript对象的组合,列出了与不同类型的单词模式相对应的不同标签
- chatbot_model.h5-由train_chatbot.py创建并由chatgui.py使用的实际模型
完整的代码位于GitHub存储库上,但是为了透明和更好地理解,我将遍历代码的详细信息。
现在让我们开始导入必要的库。(当您在终端上运行python文件时,请确保已正确安装它们。我使用pip3来安装软件包。)
import nltk
nltk.download('punkt')
nltk.download('wordnet')
from nltk.stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()
import json
import pickle
import numpy as np
from keras.models import Sequential
from keras.layers import Dense, Activation, Dropout
from keras.optimizers import SGD
import random
我们有一堆库,例如nltk(自然语言工具包),其中包含一整套用于清理文本并为深度学习算法做准备的工具,json,将json文件直接加载到Python中,pickle,加载pickle文件,numpy(可以非常有效地执行线性代数运算)和keras(这是我们将要使用的深度学习框架)。
二.初始化聊天机器人
words=[]
classes = []
documents = []
ignore_words = ['?', '!']
data_file = open('intents.json').read()
intents = json.loads(data_file)
现在是时候初始化所有要存储自然语言数据的列表了。我们有我们前面提到的json文件,其中包含“意图”。这是json文件实际外观的一小段。
我们使用json模块加载文件并将其另存为变量intent。
for intent in intents['intents']:
for pattern in intent['patterns']:
# take each word and tokenize it
w = nltk.word_tokenize(pattern)
words.extend(w)
# adding documents
documents.append((w, intent['tag']))
# adding classes to our class list
if intent['tag'] not in classes:
classes.append(intent['tag'])
如果仔细查看json文件,可以看到对象中有子对象。例如,“模式”是“意图”内的属性。因此,我们将使用嵌套的for循环来提取“模式”中的所有单词并将其添加到单词列表中。然后,将对应标签中的每对模式添加到文档列表中。我们还将标记添加到类列表中,并使用简单的条件语句来防止重复。
words = [lemmatizer.lemmatize(w.lower()) for w in words if w not in ignore_words]
words = sorted(list(set(words)))
classes = sorted(list(set(classes)))
print (len(documents), "documents")
print (len(classes), "classes", classes)
print (len(words), "unique lemmatized words", words)
pickle.dump(words,open('words.pkl','wb'))
pickle.dump(classes,open('classes.pkl','wb'))
接下来,我们将使用单词 list并将其中的所有单词进行词母化和小写。如果您还不知道,则lemmatize意味着将单词变成其基本含义或引理。例如,单词“ walking”,“ walked”,“ walks”都具有相同的引理,即“ walk”。限制我们的言语的目的是将所有内容缩小到最简单的程度。当我们为机器学习实际处理这些单词时,它将为我们节省大量时间和不必要的错误。这与词干法非常相似,词干法是将变体单词减少到其基数或词根形式。
接下来,我们对列表进行排序并打印出结果。好吧,看来我们已经准备好建立深度学习模型!
三.建立深度学习模型
# initializing training data
training = []
output_empty = [0] * len(classes)
for doc in documents:
# initializing bag of words
bag = []
# list of tokenized words for the pattern
pattern_words = doc[0]
# lemmatize each word - create base word, in attempt to represent related words
pattern_words = [lemmatizer.lemmatize(word.lower()) for word in pattern_words]
# create our bag of words array with 1, if word match found in current pattern
for w in words:
bag.append(1) if w in pattern_words else bag.append(0)
# output is a '0' for each tag and '1' for current tag (for each pattern)
output_row = list(output_empty)
output_row[classes.index(doc[1])] = 1
training.append([bag, output_row])
# shuffle our features and turn into np.array
random.shuffle(training)
training = np.array(training)
# create train and test lists. X - patterns, Y - intents
train_x = list(training[:,0])
train_y = list(training[:,1])
print("Training data created")
让我们使用变量training初始化训练数据。我们正在创建一个巨大的嵌套列表,其中包含每个文档的单词袋。我们有一个称为output_row的功能,它只是充当列表的键。然后,我们将训练集改组并进行训练-测试拆分,其中模式是X变量,意图是Y变量。
# Create model - 3 layers. First layer 128 neurons, second layer 64 neurons and 3rd output layer contains number of neurons
# equal to number of intents to predict output intent with softmax
model = Sequential()
model.add(Dense(128, input_shape=(len(train_x[0]),), activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(len(train_y[0]), activation='softmax'))
# Compile model. Stochastic gradient descent with Nesterov accelerated gradient gives good results for this model
sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])
#fitting and saving the model
hist = model.fit(np.array(train_x), np.array(train_y), epochs=200, batch_size=5, verbose=1)
model.save('chatbot_model.h5', hist)
print("model created")
现在我们已经准备好训练和测试数据,我们现在将使用来自keras的深度学习模型Sequential。我不想让您沉迷于深度学习模型的工作原理的所有细节,但是如果您感到好奇,请查看本文底部的资源。
keras中的顺序模型实际上是最简单的神经网络之一,即多层感知器。如果您不知道那是什么,我也不会怪您。这是keras中的文档。
这个特定的网络具有3层,第一层具有128个神经元,第二层具有64个神经元,第三层具有意图数量作为神经元数量。请记住,该网络的目的是能够预测给定一些数据时选择哪种意图。
将使用随机梯度下降训练模型,这也是一个非常复杂的主题。随机梯度下降比普通梯度下降更有效,这就是您需要了解的全部。
训练模型后,整个对象将变成一个numpy数组,并保存为chatbot_model.h5。
我们将使用此模型来构成我们的聊天机器人界面!
四.构建聊天机器人界面
from keras.models import load_model
model = load_model('chatbot_model.h5')
import json
import random
intents = json.loads(open('intents.json').read())
words = pickle.load(open('words.pkl','rb'))
classes = pickle.load(open('classes.pkl','rb'))
我们需要从文件中提取信息。
def clean_up_sentence(sentence):
sentence_words = nltk.word_tokenize(sentence)
sentence_words = [lemmatizer.lemmatize(word.lower()) for word in sentence_words]
return sentence_words
# return bag of words array: 0 or 1 for each word in the bag that exists in the sentence
def bow(sentence, words, show_details=True):
# tokenize the pattern
sentence_words = clean_up_sentence(sentence)
# bag of words - matrix of N words, vocabulary matrix
bag = [0]*len(words)
for s in sentence_words:
for i,w in enumerate(words):
if w == s:
# assign 1 if current word is in the vocabulary position
bag[i] = 1
if show_details:
print ("found in bag: %s" % w)
return(np.array(bag))
def predict_class(sentence, model):
# filter out predictions below a threshold
p = bow(sentence, words,show_details=False)
res = model.predict(np.array([p]))[0]
ERROR_THRESHOLD = 0.25
results = [[i,r] for i,r in enumerate(res) if r>ERROR_THRESHOLD]
# sort by strength of probability
results.sort(key=lambda x: x[1], reverse=True)
return_list = []
for r in results:
return_list.append({"intent": classes[r[0]], "probability": str(r[1])})
return return_list
def getResponse(ints, intents_json):
tag = ints[0]['intent']
list_of_intents = intents_json['intents']
for i in list_of_intents:
if(i['tag']== tag):
result = random.choice(i['responses'])
break
return result
def chatbot_response(msg):
ints = predict_class(msg, model)
res = getResponse(ints, intents)
return res
以下是一些功能,其中包含运行GUI所需的所有必要过程,并将其封装为单元。我们具有clean_up_sentence()函数,该函数可以清理输入的所有句子。该函数用在bow()函数中,该函数接收要清理的句子并创建一袋用于预测类的单词(这是基于我们先前训练模型所得到的结果)。
在predict_class()函数中,我们使用0.25的错误阈值来避免过度拟合。此函数将输出意图和概率的列表,它们与正确的意图匹配的可能性。函数getResponse()获取输出的列表并检查json文件,并以最高的概率输出最多的响应。
最后,我们的chatbot_response()接收一条消息(该消息将通过我们的聊天机器人GUI输入),使用我们的prepare_class()函数预测该类,将输出列表放入getResponse()中,然后输出响应。我们得到的是聊天机器人的基础。现在,我们可以告诉bot,然后它将进行响应。
#Creating GUI with tkinter
import tkinter
from tkinter import *
def send():
msg = EntryBox.get("1.0",'end-1c').strip()
EntryBox.delete("0.0",END)
if msg != '':
ChatLog.config(state=NORMAL)
ChatLog.insert(END, "You: " + msg + '\n\n')
ChatLog.config(foreground="#442265", font=("Verdana", 12 ))
res = chatbot_response(msg)
ChatLog.insert(END, "Bot: " + res + '\n\n')
ChatLog.config(state=DISABLED)
ChatLog.yview(END)
base = Tk()
base.title("Hello")
base.geometry("400x500")
base.resizable(width=FALSE, height=FALSE)
#Create Chat window
ChatLog = Text(base, bd=0, bg="white", height="8", width="50", font="Arial",)
ChatLog.config(state=DISABLED)
#Bind scrollbar to Chat window
scrollbar = Scrollbar(base, command=ChatLog.yview, cursor="heart")
ChatLog['yscrollcommand'] = scrollbar.set
#Create Button to send message
SendButton = Button(base, font=("Verdana",12,'bold'), text="Send", width="12", height=5,
bd=0, bg="#32de97", activebackground="#3c9d9b",fg='#ffffff',
command= send )
#Create the box to enter message
EntryBox = Text(base, bd=0, bg="white",width="29", height="5", font="Arial")
#EntryBox.bind("<Return>", send)
#Place all components on the screen
scrollbar.place(x=376,y=6, height=386)
ChatLog.place(x=6,y=6, height=386, width=370)
EntryBox.place(x=128, y=401, height=90, width=265)
SendButton.place(x=6, y=401, height=90)
base.mainloop()
这里是有趣的部分(如果其他部分还不好玩)。我们可以使用tkinter(一个允许我们创建自定义界面的Python库)来创建GUI。
我们创建一个名为send()的函数,该函数设置了聊天机器人的基本功能。如果我们输入到聊天机器人中的消息不是空字符串,则机器人将基于我们的chatbot_response()函数输出响应。
此后,我们将建立聊天窗口,滚动条,用于发送消息的按钮以及用于创建消息的文本框。我们使用简单的坐标和高度将所有组件放置在屏幕上。
五.运行聊天机器人
终于可以运行我们的聊天机器人了!
因为我在Windows 10计算机上运行程序,所以必须下载名为Xming的服务器。如果您运行程序,并且给您一些有关程序失败的奇怪错误,则可以下载Xming。
在运行程序之前,需要确保使用pip(或pip3)安装python或python3。如果您不熟悉命令行命令,请查看下面的资源。
一旦运行程序,就应该得到这个。
六.结论
恭喜您完成了该项目!构建一个简单的聊天机器人可以使您掌握各种有用的数据科学和通用编程技能。我觉得学习任何东西的最好方法(至少对我而言)是建立和修补。如果您想变得擅长某事,则需要进行大量练习,而最好的练习方法就是动手并坚持练习!
七.可以改进的地方
这只是一套简单且让你在短时间内即可构建聊天机器人构建的教程,还有许多改进的空间,欢迎各位大牛进行修改更正。
1.尝试不同的神经网络
我们使用了最简单的keras神经网络,因此还有很多改进的余地。随时为您的项目尝试卷积网络或循环网络。
2.使用更多数据
就各种可能的意图和响应而言,我们的json文件非常小。人类语言比这复杂数十亿倍,因此从头开始创建JARVIS会需要更多。
3.使用不同的框架
有很多深度学习框架,而不仅仅是keras。有tensorflow,Apache Spark,PyTorch,Sonnet等。不要只局限于一种工具!
原文链接(需要翻墙才能浏览):https://towardsdatascience.com/how-to-create-a-chatbot-with-python-deep-learning-in-less-than-an-hour-56a063bdfc44
Github项目地址:https://github.com/jerrytigerxu/Simple-Python-Chatbot
本文由未艾信息(www.weainfo.net)翻译,想看更多译文,大家可以到我们的网站上观看~
也可以关注我们的微信公众号:为AI呐喊(ID:weainahan)
八、医药企业如何实现创新?
重大新药创制”国家科技重大专项启动以来,我国的生物医药研发已经由第三梯队向第二梯队挺进,即将进入由仿制药大国向创新药大国的快速转型期。在这期间,创新是不变的主题。医药企业该如何做好创新布局?在近日举行的2019首届中国药谷高峰论坛上,业内专家就此进行了讨论。
“医药行业现在都在说‘争三保五’,要把项目争取做到行业前三,才会有市场和价值。我非常同意这个观点。”北京民海生物CEO郑海发表示,一个企业要发展起来,最重要的是要在前期做好资源准备,同时在发展的过程中要坚持原创。
郑海发介绍,民海生物在选择项目的时候,都是与国际上排名前列的公司看齐在做。公司最早与默克有过合作,现在跟GSK、美国国立卫生研究院、世界卫生组织等都有合作,不过这些合作只是引进了一部分资源,合作药品只占公司目前开发品种的一小部分,公司更多的药品品种还是靠公司原创研发。目前民海生物在售的主要品种就是公司自己原创研发的,去年销售额达到13亿元。“原创才能真正拥有竞争力。不创新的、仿制的、大家都有的品种,基本上是没有利润的。”
在北京合生基因科技有限公司首席运营官蒋云看来,药企布局不仅要保持创新,还要做到专注。
“我们不像很多大企业一样有非常充足的资金,以及充足的资源,所以我们只能利用新的技术,在有限的范围内,非常专注地去开发,才有可能在目前残酷的市场竞争中,快速地成长起来。”蒋云表示。
据介绍,合生基因从事的主要是合成生物学,合成生物学的历史只有10年左右的时间,是一个非常新兴的学科。在全球范围内,合生基因处于合成生物学第一梯队,是比较早期的践行者之一。因此,合生基因在发展过程中遇到了很多困难和挑战。但公司一直秉持两个观念:创新和专注。
在创新方面,合生基因与清华大学、清华信息国家实验室共同合作开发合成生物技术的基因治疗和细胞治疗方法。据悉,全球领先、中国首创的基因和细胞治疗药物预计将在明年1季度和4季度,会有多个品种进行中国和美国的案例申报。
在专注方面,合生基因一直聚焦合成生物学,在过去几年时间里,用科学的逻辑去解决药物开发从0到1的过程,而目前正在进行的是利用产业的理论去解决产品从1到10的过程,去进行案例申报、标准化生产、临床研究等。未来,合生基因将在策略上布局创新产品从10-100的过程,去进行自己的标准化生产、临床管理团队的建设。
“合成生物技术是一个非常新的领域,如何保证我们能够在有限的资源条件下,快速有效地发展,实现企业成本最优化、资本优势最大化?这就需要我们专注于某些前沿领域。”蒋云表示,对于像合成生物这样的医药创新型企业而言,并不需要做大做强,而是要实现做专做强。只有做专做强,才能把一个从科研转化而来的新兴企业,做成在行业里面能有立锥之地的支柱性企业。
创新不仅仅是原创科学的创新,产业模式的创新也是一种创新。北京五和博澳药业有限公司与中国医学科学院多年保持产研合作,推动医药科技成果转化。
“创新的路是漫长的。在中国做创新药更难。”北京五和博澳药业有限公司总经理金毅群介绍说,桑枝总生物碱片是中国医学科学院近30年的研究成果,五和博澳药业公司就是为了让这一科技成果转化,在2010年正式落户到大兴生物医药基地,并且为了该产品的进一步产业化,先后建了两个企业,投资了将近10亿元。但是到目前为止,该产品还在路上,好在近期有望拿到产品新药证书和生产批文。
金毅群表示,加速成果转化的过程中,科学家全程参与到产品转化中的每一个环节,提供了一系列技术支持。同时,五和博澳药业自己的研发团队和技术人员,也能够和科学家面对面地交流,在集体攻关的过程中,也带动了公司技术人员的快速成长。他称,将近10年的成果转化历程,不仅仅需要企业家的情怀,也需要科学家的情怀。他希望在今后的科技成果转化过程中,国家能够给予更多政策支持。
“作为新药研发企业或团队,一定要立足创新,保持专注,耐住寂寞,共同奋斗。”蒋云表示。
九、连锁经营哪种途径实现创新?
连锁经营需要是加盟方式和全员持股方式,其中全员持股是创新模式,员工不再是公司普通工人,而是公司股东。
十、创新过程最终通过什么实现?
创新过程是一个系统变化的过程,最终要通过( 经济效益或社会效益)来实现。
创新意识贯穿于创新的全过程,剖析创新实践,总体看,它主要包括下面五个方面:
第一,动力意识。 人们为什么渴求创新?为什么会忘我的致力于创新?总有一种推动的力量,这就是创新的动力问题。创新动力意识在创新意识中处于关键性的地位,思想根本上没有想到要创新或者把创新看成可有可无,当然不会有创新行动或者不会有强烈的创新行动。
第二,质疑意识。 谁不敢或不善于求异与质疑,谁就无法创新。“没有对常规的挑战,就没有创造。而对常规的挑战的第一步,就是提问。”提问就是质疑,它是发现真理、发展真理的必经环节和必经过程。
第三,超越意识。 超越就是超越前人或他人甚至自己已有的成绩。任何开拓、任何创新,都是一种超越。一部人类发展史就是不断开拓不断创新的历史,也是一部不断超越的历史。超越是一种历史的必然。培养树立超越意识首先要懂得超越的必然性,并在这个基础树立超越的自信心。
第四,风险意识。 创新常常要闯禁区,要挑战常规、违背传统、冲破习惯势力、冒犯权威、触犯反动阶级利益、抗拒嫉妒思想的干扰、抵挡争名夺利的诋毁等等。特别是当前高新科技方面的创新,涉及的方面众多,不可控因素激增,使创新的风险加大。这就要求我们要有一种常人不具备或难以具备的风险意识,只有敢冒风险才能创新。
第五,协作意识。 今天大生产、大经济、大科研把团结协作的重要性提到一个新的高度。适应高度社会化这个时代新特点要求的创新,必须多学科、多部门共同努力,协同动作才有可能成功,有的甚至需要国际协作才能进行。许多创新是一个人或少数人难以从事、难以成功的,没有协作精神,创新将寸步难行。
上述几种意识在创新中各有其特有的地位和作用,动力意识处于基础和前提的地位,对增强人们创新意识有着关键性的作用;超越意识和质疑意识处于主导地位,充分反映着创新意识的本质特征;风险意识、协作意识是组成创新意识的重要部件,起着强化和条件作用。几者缺一不可,它们相互配合相互作用,形成一个创新意识结构系统,共同促进创新实践的发展。