from transformers import AutoModelForSequenceClassification from transformers import AutoTokenizer, AutoConfig from clean_data import cleaned_complaints import numpy as np from scipy.special import softmax import gradio as gr # Preprocess text (username and link placeholders) def preprocess(text): new_text = [] for t in text.split(" "): t = '@user' if t.startswith('@') and len(t) > 1 else t t = 'http' if t.startswith('http') else t new_text.append(t) return " ".join(new_text) # load model MODEL = f"ThirdEyeData/Consumer-Complaint-Segmentation" model = AutoModelForSequenceClassification.from_pretrained(MODEL) #model.save_pretrained(MODEL) tokenizer = AutoTokenizer.from_pretrained(MODEL) config = AutoConfig.from_pretrained(MODEL) # create classifier function def classify_compliant(text): text = cleaned_complaints(text) text = preprocess(text) encoded_input = tokenizer(text, return_tensors='pt') output = model(**encoded_input) scores = output[0][0].detach().numpy() scores = softmax(scores) # Print labels and scores probs = {} ranking = np.argsort(scores) ranking = ranking[::-1] l = config.id2label[ranking[0]] #s = scores[ranking[i]] #probs[l] = np.round(float(s), 4) return l #build the Gradio app #Instructuction = "Write an imaginary review about a product or service you might be interested in." title="Consumer Complaint Segmentation" description = """Write a complaint insurance product or service,\ see how the machine learning model is able to predict your Complaint type""" article = """ - Click submit button to test Consumer Complaint Segmentation - Click clear button to refresh text """ gr.Interface(classify_compliant, 'text', 'label', title = title, description = description, #Instruction = Instructuction, article = article, allow_flagging = "never", live = False, examples=["""Debt to XXXX was satisfied when account was closed and all equipment was returned, XXXX 2014. NO further contact from XXXX XXXX, however, 13 months later this " collection \'\' shows up on on my credit report. NO prior written or phone communication. I have attempted to contact this Debt Collector and can not get any information pertaining to my account from the""", """I receive repeated calls daily from this company. I signed up for a debt consolidation service and they continued to call my personal phone and my place of employment. \nCausing a phone to ring repeatedly in the attempts to annoy or establish communication is against the law. I have asked for the calls to stop and sent a cease and desist and still the calls continue""", """I was erroneously reported to all three major credit Bureaus by XXXX for a professional fee I paid for {$220.00} on XX/XX/2015. I have the cancelled check. This check cleared the bank on XX/XX/2015. I receivePlease note-I have the recorded call on file and it was disclosed to the company that I was recording. I called Hunter Warfield to come to a resoluation on some lease break fees I had with an apartment complex called XXXX XXXX. The representative told me the total amount due was {$2100.00} and that I can settle for half of that amount. Unfortunately, I was unable to accept the settlement but began to question the amount because my last statement was {$1800.00} and there was nothing written in the contract for additional interest charges should my account go into collection. I told the representative that I will pay the amount actually owed and I want to make a payment arrangement. She told me I ca n\'t just do what I want, If I want to pay the original amount due, it has to be paid in full. I told her that that is not fair debt collection practice and that I am only contractually obligated to the {$1800.00} and we can set up an arrangement from that. She asked me in a condensing told """ , """ERC is the company, first they say, I owe for this debt that I have no idea or clue what it is or if I even did it. then the debt is about 8 years old, and also threaten take me to court if I don't pay""", """I do n't think I chose the correct issue above, however I think it is closest to my issue. I have a record on my credit report that I have disputed through both the company and the credit bureaus. The dispute is marked as being disputed by me on my report, but it was not removed despite the creditor not sending me verification of this debt. I do not even know what this debt is for. I have tried contacting the collection agency by mail to obtain verification with no response and they will not remove the item from my report.""" ] ).launch()