File size: 6,280 Bytes
b4f37d3
 
 
fea0eb7
b4f37d3
 
 
 
fea0eb7
b4f37d3
fea0eb7
b4f37d3
 
 
fea0eb7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html><html lang="en">
<head>    <meta charset="UTF-8">    <title>Sentiment Analysis - Hugging Face Transformers.js</title>
    <script type="module">        // Import the library        import { pipeline } from 'https://cdn.jsdelivr.net/npm/@xenova/[email protected]';        // Make it available globally        window.pipeline = pipeline;    </script>
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
    <link rel="stylesheet" href="css/styles.css"></head>
<body>    <div class="container-main">                <!-- Back to Home button -->        <div class="row mt-5">            <div class="col-md-12 text-center">                <a href="index.html" class="btn btn-outline-secondary"                    style="color: #3C650B; border-color: #3C650B;">Back to Main Page</a>            </div>        </div>
        <!-- Content -->        <div class="container mt-5">            <!-- Centered Titles -->            <div class="text-center">                <h2>Natural Language Processing</h2>                <h4>Sentiment Analysis (Text Classification)</h4>            </div>
            <!-- Actual Content of this page -->            <div id="sentiment-analyzer-container" class="container mt-4">                <h5>Single Input:</h5>                <div class="d-flex align-items-center">                    <label for="sentimentText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Text to                        Analyze:</label>                    <input type="text" class="form-control flex-grow-1" id="sentimentText" value="I love transformers!"                        placeholder="Enter text" style="margin-right: 15px; margin-left: 15px;">                    <button id="analyzeButton" class="btn btn-primary" onclick="analyzeSentiment()">Analyze</button>                </div>                <div class="mt-4">                    <h4>Output:</h4>                    <pre id="outputArea"></pre>                </div>            </div>
            <hr> <!-- Line Separator -->
            <div id="sentiment-analyzer-container2" class="container mt-4">                <h5>Multiple Inputs:</h5>                <div class="d-flex align-items-center mb-2">                    <label for="sentimentText1" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Text to                        Analyze 1:</label>                    <input type="text" class="form-control flex-grow-1" id="sentimentText1" value="I love transformers!"                        placeholder="Enter text" style="margin-right: 15px; margin-left: 15px;">                </div>                <div class="d-flex align-items-center">                    <label for="sentimentText2" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Text to                        Analyze 2:</label>                    <input type="text" class="form-control flex-grow-1" id="sentimentText2" value="I hate transformers!"                        placeholder="Enter text" style="margin-right: 15px; margin-left: 15px;">                    <button id="analyzeButton" class="btn btn-primary ml-2"                        onclick="analyzeSentimentMulti()">Analyze</button>                </div>                <div class="mt-4">                    <h4>Output:</h4>                    <pre id="outputArea2"></pre>                </div>            </div>
            <hr> <!-- Line Separator -->
            <!-- Toxic Comment Classification -->            <div id="toxic-container" class="container mt-4">                <h5>Toxic Comment Classification (Return All Classes):</h5>                <div class="d-flex align-items-center">                    <label for="toxicText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Toxic                        Text:</label>                    <input type="text" class="form-control flex-grow-1" id="toxicText" value="I hate you!"                        placeholder="Enter text" style="margin-right: 15px; margin-left: 15px;">                    <button id="toxicButton" class="btn btn-primary" onclick="toxicReview()">Review</button>                </div>                <div class="mt-4">                    <h4>Output:</h4>                    <pre id="toxicOutputArea"></pre>                </div>            </div>
            <!-- Back to Home button -->            <div class="row mt-5">                <div class="col-md-12 text-center">                    <a href="index.html" class="btn btn-outline-secondary"                        style="color: #3C650B; border-color: #3C650B;">Back to Main Page</a>                </div>            </div>        </div>    </div>
    <script>        let sentimentAnalysis;        let reviewer;        let toxic_classifier;        // Initialize the sentiment analysis model        async function initializeModel() {            sentimentAnalysis = await pipeline('sentiment-analysis', 'Xenova/distilbert-base-uncased-finetuned-sst-2-english');            toxic_classifier = await pipeline('text-classification', 'Xenova/toxic-bert');        }        async function analyzeSentiment() {            const textFieldValue = document.getElementById("sentimentText").value.trim();            const result = await sentimentAnalysis(textFieldValue);            document.getElementById("outputArea").innerText = JSON.stringify(result, null, 2);        }        async function analyzeSentimentMulti() {            const textFieldValue1 = document.getElementById("sentimentText1").value.trim();            const textFieldValue2 = document.getElementById("sentimentText2").value.trim();            const result = await sentimentAnalysis([textFieldValue1, textFieldValue2]);            document.getElementById("outputArea2").innerText = JSON.stringify(result, null, 2);        }        async function toxicReview() {            const textFieldValue = document.getElementById("toxicText").value.trim();            const result = await toxic_classifier(textFieldValue, { topk: null });            document.getElementById("toxicOutputArea").innerText = JSON.stringify(result, null, 2);        }        // Initialize the model after the DOM is completely loaded        window.addEventListener("DOMContentLoaded", initializeModel);    </script></body>
</html>