SubjectApps / app.py
Jawad192's picture
Update app.py
baa2f43 verified
import pandas as pd
from transformers import pipeline
# Example data
data = {
'term': [
'Atmospheric Chemistry',
'Organic Chemistry',
'Business Ethics',
'Corporate Social Responsibility'
]
}
df = pd.DataFrame(data)
# Load the zero-shot classification pipeline
classifier = pipeline('zero-shot-classification', model='facebook/bart-large-mnli')
# Define your candidate labels
candidate_labels = ['Discipline', 'Subdiscipline']
# Function to classify term and recommend discipline
def classify_term(term):
result = classifier(term, candidate_labels)
label = result['labels'][0] # Get the highest scoring label
return label
# Classify all terms
df['classification'] = df['term'].apply(classify_term)
# Example mapping of subdisciplines to disciplines
subdiscipline_to_discipline = {
'Atmospheric Chemistry': 'Atmospheric Science',
'Organic Chemistry': 'Chemistry',
'Corporate Social Responsibility': 'Business Ethics'
# Add your mappings here
}
def recommend_discipline(term, classification):
if classification == 'Subdiscipline':
return subdiscipline_to_discipline.get(term, 'Unknown Discipline')
else:
return term
df['recommended_discipline'] = df.apply(lambda x: recommend_discipline(x['term'], x['classification']), axis=1)
# Display the results
print(df[['term', 'classification', 'recommended_discipline']])