Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from sumy.parsers.plaintext import PlaintextParser
- from sumy.nlp.tokenizers import Tokenizer
- from sumy.summarizers.lsa import LsaSummarizer as Summarizer
- from sumy.nlp.stemmers import Stemmer
- from sumy.utils import get_stop_words
- from chatterbot import ChatBot
- from chatterbot.trainers import ListTrainer
- import re
- import mysql.connector
- # Requires: chatterbot sumy, a wiki...
- bot = ChatBot(
- 'Teddy',
- storage_adapter='chatterbot.storage.SQLStorageAdapter',
- input_adapter='chatterbot.input.TerminalAdapter',
- output_adapter='chatterbot.output.TerminalAdapter',
- database='./database.sqlite3'
- )
- bot.set_trainer(ListTrainer)
- cnx = mysql.connector.connect(user='XXXXXXXXX', password='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
- host='127.0.0.1',
- database='my_wiki')
- cursor = cnx.cursor()
- print('Loading wiki data...')
- cursor.execute("SELECT old_text FROM text")
- result = cursor.fetchall()
- for row in result:
- sat = str(row[0])
- name = re.findall(r"'''(.*?)'''", sat)
- if name:
- soup = name[0]
- data = re.sub("[[]", '', soup)
- data1 = re.sub("[]]", '', data)
- data2 = re.sub("[']", '', data1)
- print(data2)
- str1 = str(data2)
- sentence = ''
- validLetters = ".abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ "
- text = ''.join([char for char in sat if char in validLetters])
- LANGUAGE = "english"
- SENTENCES_COUNT = 20
- parser = PlaintextParser.from_string(text, Tokenizer(LANGUAGE))
- stemmer = Stemmer(LANGUAGE)
- summarizer = Summarizer(stemmer)
- summarizer.stop_words = get_stop_words(LANGUAGE)
- for sentence in summarizer(parser.document, SENTENCES_COUNT):
- bot.train([
- str1,
- sentence,
- ])
- print('Done loading wiki data... Database has been saved.')
- while True:
- try:
- bot_input = bot.get_response(None)
- except(KeyboardInterrupt, EOFError, SystemExit):
- cnx.close()
- break
Add Comment
Please, Sign In to add comment