|
import csv |
|
|
|
def load_word_database(database_filename): |
|
with open(database_filename, mode='r', encoding='utf-8') as database_file: |
|
return set(word.strip().lower() for word in database_file) |
|
|
|
def check_generated_conversation_for_words(csv_filename, word_database): |
|
words_scores = [] |
|
|
|
with open(csv_filename, mode='r', newline='', encoding='utf-8') as csv_file: |
|
csv_reader = csv.DictReader(csv_file) |
|
|
|
for row in csv_reader: |
|
generated_conversation = row.get('Generated Conversation', '').lower() |
|
word_scores = [] |
|
|
|
for word in generated_conversation.split(): |
|
score = 1 if word in word_database else 0 |
|
word_scores.append({'Word': word, 'Score': score}) |
|
|
|
words_scores.extend(word_scores) |
|
|
|
return words_scores |
|
|
|
def save_word_scores_to_csv(word_scores, output_csv_filename): |
|
with open(output_csv_filename, mode='w', newline='', encoding='utf-8') as output_csv_file: |
|
csv_writer = csv.DictWriter(output_csv_file, fieldnames=['Word', 'Score']) |
|
csv_writer.writeheader() |
|
|
|
for word_score in word_scores: |
|
csv_writer.writerow(word_score) |
|
|
|
def main(): |
|
database_filename = 'word_database.txt' |
|
csv_filename = 'info.csv' |
|
output_csv_filename = 'word_scores.csv' |
|
|
|
word_database = load_word_database(database_filename) |
|
words_scores = check_generated_conversation_for_words(csv_filename, word_database) |
|
save_word_scores_to_csv(words_scores, output_csv_filename) |
|
|
|
if __name__ == "__main__": |
|
main() |
|
|