sentence-transformers safetensors distilbert sentence-similarity feature-extraction generated_from_trainer dataset_size:302 loss:CosineSimilarityLoss arxiv:1908.10084 base_model:distilbert/distilbert-base-uncased-finetuned-sst-2-english base_model:finetune:distilbert/distilbert-base-uncased-finetuned-sst-2-english model-index autotrain_compatible text-embeddings-inference endpoints_compatible region:us
---
base_model: distilbert/distilbert-base-uncased-finetuned-sst-2-english
library_name: sentence-transformers
metrics:
- pearson_cosine
- spearman_cosine
- pearson_manhattan
- spearman_manhattan
- pearson_euclidean
- spearman_euclidean
- pearson_dot
- spearman_dot
- pearson_max
- spearman_max
pipeline_tag: sentence-similarity
tags:
- sentence-transformers
- sentence-similarity
- feature-extraction
- generated_from_trainer
- dataset_size:302
- loss:CosineSimilarityLoss
widget:
- source_sentence: "interface Input {\n  id: number;\n  title: string;\n  parent_id:\
    \ number | null;  \n}\n\ninterface Output extends Input {\n  children?: Output[];\
    \  \n}\n\nfunction doJob(inputItems: Input[], parent_id?: number) {\n  const outputItems:\
    \ Output[] = [];\n\n  for (let i = 0; i < inputItems.length; i++) {\n    const\
    \ children = doJob(inputItems.slice(i, inputItems.length), inputItems[i].parent_id)\n\
    \    .filter(i => i.parent_id === parent_id);\n    \n    outputItems.push({...item,\
    \ children});\n  }\n\n  return outputItems;\n}"
  sentences:
  - "interface Task {\n    id: number;\n    title: string;\n    parent_id: number\
    \ | null;\n    children?: Task[];\n}\n\nfunction buildTaskTree(tasks: Task[]):\
    \ Task[] {\n    const tasksMap = tasks.reduce((acc, task) => {\n        acc[task.id]\
    \ = { ...task, children: [] };\n        return acc;\n    }, {} as { [key: number]:\
    \ Task });\n\n    const rootTasks: Task[] = [];\n\n    tasks.forEach(task => {\n\
    \        const { id, parent_id } = task;\n        if (parent_id === null) {\n\
    \            rootTasks.push(tasksMap[id]);\n        } else {\n            if (tasksMap[parent_id])\
    \ {\n                tasksMap[parent_id].children.push(tasksMap[id]);\n      \
    \      }\n        }\n    });\n\n    return rootTasks;\n}\n\n// Test the function\
    \ with the provided example\nconst inputTasks: Task[] = [\n    { id: 1, title:\
    \ 'Task 1', parent_id: null },\n    { id: 2, title: 'Task 2', parent_id: 1 },\n\
    \    { id: 3, title: 'Task 3', parent_id: 1 }\n];\nconst outputTasks: Task[] =\
    \ buildTaskTree(inputTasks);\nconsole.log(outputTasks);\n"
  - "const http = require('http');\n\nasync function checkUrlsStatus(urls) {\n   \
    \ const statusObj = {};\n\n    const getStatus = async (url) => {\n        return\
    \ new Promise((resolve) => {\n            http.get(url, (res) => {\n         \
    \       resolve(res.statusCode);\n            }).on('error', (error) => {\n  \
    \              resolve(500); // Internal Server Error\n            });\n     \
    \   });\n    };\n\n    await Promise.all(urls.map(async (url) => {\n        const\
    \ status = await getStatus(url);\n        statusObj[url] = status;\n    }));\n\
    \n    return statusObj;\n}\n\n// Example\nconst urls = ['https://example.com',\
    \ 'https://google.com'];\ncheckUrlsStatus(urls)\n    .then((result) => {\n   \
    \     console.log(result);\n    })\n    .catch((error) => {\n        console.error(error);\n\
    \    });\n\nmodule.exports = checkUrlsStatus;\n"
  - "def find_longest_word(words):\n    max_length = 0\n    longest_word = ''\n\n\
    \    for word in words:\n        if len(word) > max_length:\n            max_length\
    \ = len(word)\n            longest_word = word\n\n    return longest_word, max_length\n\
    \n# Test cases\nprint(find_longest_word(['hello', 'world', 'python', 'programming']))\
    \  # Output: ('programming', 11)\nprint(find_longest_word(['short', 'longer',\
    \ 'longest', 'size']))  # Output: ('longest', 7)\n"
- source_sentence: "// inventory.module.ts\nimport { Module } from '@nestjs/common';\n\
    import { InventoryService } from './inventory.service';\nimport { InventoryController\
    \ } from './inventory.controller';\nimport { TypeOrmModule } from '@nestjs/typeorm';\n\
    import { Product } from './product.entity';\n@Module({\n  imports: [TypeOrmModule.forFeature([Product])],\n\
    \  providers: [InventoryService],\n  controllers: [InventoryController],\n})\n\
    export class InventoryModule {}\n// inventory.service.ts\nimport { Injectable\
    \ } from '@nestjs/common';\nimport { InjectRepository } from '@nestjs/typeorm';\n\
    import { Product } from './product.entity';\nimport { CreateProductDto, UpdateProductDto\
    \ } from './product.dto';\n\n@Injectable()\nexport class InventoryService {\n\
    \  constructor(\n    @InjectRepository(Product)\n    private readonly productRepository:\
    \ Repository<Product>,\n  ) {}\n\n  async createProduct(createProductDto: CreateProductDto):\
    \ Promise<Product> {\n    const newProduct = new Product();\n    newProduct.name\
    \ = createProductDto.name;\n    newProduct.description = createProductDto.description;\n\
    \    newProduct.price = createProductDto.price;\n    newProduct.availableQuantity\
    \ = createProductDto.availableQuantity;\n\n    return await this.productRepository.save(newProduct);\n\
    \  }\n\n  async updateProduct(\n    productId: number,\n    updateProductDto:\
    \ UpdateProductDto,\n  ): Promise<Product> {\n    const product = await this.productRepository.findOne(productId);\n\
    \    if (!product) {\n      throw new NotFoundException('Product not found');\n\
    \    }\n\n    product.name = updateProductDto.name || product.name;\n    product.description\
    \ = updateProductDto.description || product.description;\n    product.price =\
    \ updateProductDto.price || product.price;\n    product.availableQuantity =\n\
    \      updateProductDto.availableQuantity || product.availableQuantity;\n\n  \
    \  return await this.productRepository.save(product);\n  }\n\n  async findAllProducts():\
    \ Promise<Product[]> {\n    return await this.productRepository.find();\n  }\n\
    \n  async getProductById(productId: number): Promise<Product> {\n    const product\
    \ = await this.productRepository.findOne(productId);\n    if (!product) {\n  \
    \    throw new NotFoundException('Product not found');\n    }\n    return product;\n\
    \  }\n\n  async checkProductAvailability(productId: number, quantity: number):\
    \ Promise<boolean> {\n    const product = await this.productRepository.findOne(productId);\n\
    \    if (!product) {\n      throw new NotFoundException('Product not found');\n\
    \    }\n    return product.availableQuantity >= quantity;\n  }\n}"
  sentences:
  - "// inventory.dto.ts\nimport { IsInt, IsNotEmpty, IsNumber, IsString, Min } from\
    \ 'class-validator';\n\nexport class ProductDto {\n  @IsString()\n  @IsNotEmpty()\n\
    \  id: string;\n\n  @IsString()\n  @IsNotEmpty()\n  name: string;\n\n  @IsString()\n\
    \  description: string;\n\n  @IsNumber()\n  @IsNotEmpty()\n  price: number;\n\n\
    \  @IsInt()\n  @Min(0)\n  @IsNotEmpty()\n  availableQuantity: number;\n}\n\n//\
    \ inventory.interface.ts\nexport interface Product {\n  id: string;\n  name: string;\n\
    \  description: string;\n  price: number;\n  availableQuantity: number;\n}\n\n\
    // inventory.module.ts\nimport { Module } from '@nestjs/common';\nimport { TypeOrmModule\
    \ } from '@nestjs/typeorm';\nimport { InventoryController } from './inventory.controller';\n\
    import { InventoryService } from './inventory.service';\nimport { Product } from\
    \ './product.entity';\n\n@Module({\n  imports: [TypeOrmModule.forFeature([Product])],\n\
    \  controllers: [InventoryController],\n  providers: [InventoryService]\n})\n\
    export class InventoryModule {}  \n\n// product.entity.ts\nimport { Entity, Column,\
    \ PrimaryGeneratedColumn } from 'typeorm';\n\n@Entity()\nexport class Product\
    \ {\n  @PrimaryGeneratedColumn()\n  id: number;\n\n  @Column()\n  name: string;\n\
    \n  @Column()\n  description: string;\n\n  @Column('decimal')\n  price: number;\n\
    \n  @Column()\n  availableQuantity: number;\n}\n\n// inventory.controller.ts\n\
    import { Controller, Get, Post, Put, Body, Param } from '@nestjs/common';\nimport\
    \ { InventoryService } from './inventory.service';\nimport { ProductDto } from\
    \ './inventory.dto';\n\n@Controller('inventory')\nexport class InventoryController\
    \ {\n  constructor(private readonly inventoryService: InventoryService) {}\n\n\
    \  @Post('add-product')\n  async addProduct(@Body() productDto: ProductDto) {\n\
    \    return this.inventoryService.addProduct(productDto);\n  }\n\n  @Get('products')\n\
    \  async getProducts() {\n    return this.inventoryService.getProducts();\n  }\n\
    \n  @Put('update-quantity/:id')\n  async updateQuantity(@Param('id') id: string,\
    \ @Body('quantity') quantity: number) {\n    return this.inventoryService.updateQuantity(id,\
    \ quantity);\n  }\n}\n\n// inventory.service.ts\nimport { Injectable } from '@nestjs/common';\n\
    import { InjectRepository } from '@nestjs/typeorm';\nimport { Repository } from\
    \ 'typeorm';\nimport { Product } from './product.entity';\nimport { ProductDto\
    \ } from './inventory.dto';\n\n@Injectable()\nexport class InventoryService {\n\
    \  constructor(\n    @InjectRepository(Product)\n    private productRepository:\
    \ Repository<Product>,\n  ) {}\n\n  async addProduct(productDto: ProductDto):\
    \ Promise<Product> {\n    const newProduct = this.productRepository.create(productDto);\n\
    \    return this.productRepository.save(newProduct);\n  }\n\n  async getProducts():\
    \ Promise<Product[]> {\n    return this.productRepository.find();\n  }\n\n  async\
    \ updateQuantity(id: string, quantity: number): Promise<Product> {\n    const\
    \ product = await this.productRepository.findOne(id);\n    if (!product) {\n \
    \     throw new Error('Product not found');\n    }\n\n    product.availableQuantity\
    \ = quantity;\n    return this.productRepository.save(product);\n  }\n}\n"
  - "def move_zeros_to_end(lst):\n    zero_count = 0\n    for i in range(len(lst)):\n\
    \        if lst[i] != 0:\n            lst[i], lst[zero_count] = lst[zero_count],\
    \ lst[i]\n            zero_count += 1\n\n# Test cases\nlst1 = [0, 1, 0, 3, 12]\n\
    move_zeros_to_end(lst1)\nprint(lst1)  # Output: [1, 3, 12, 0, 0]\n\nlst2 = [0,\
    \ 0, 1]\nmove_zeros_to_end(lst2)\nprint(lst2)  # Output: [1, 0, 0]\n"
  - "// inventory.dto.ts\nimport { IsInt, IsNotEmpty, IsNumber, IsString, Min } from\
    \ 'class-validator';\n\nexport class ProductDto {\n  @IsString()\n  @IsNotEmpty()\n\
    \  id: string;\n\n  @IsString()\n  @IsNotEmpty()\n  name: string;\n\n  @IsString()\n\
    \  description: string;\n\n  @IsNumber()\n  @IsNotEmpty()\n  price: number;\n\n\
    \  @IsInt()\n  @Min(0)\n  @IsNotEmpty()\n  availableQuantity: number;\n}\n\n//\
    \ inventory.interface.ts\nexport interface Product {\n  id: string;\n  name: string;\n\
    \  description: string;\n  price: number;\n  availableQuantity: number;\n}\n\n\
    // inventory.module.ts\nimport { Module } from '@nestjs/common';\nimport { TypeOrmModule\
    \ } from '@nestjs/typeorm';\nimport { InventoryController } from './inventory.controller';\n\
    import { InventoryService } from './inventory.service';\nimport { Product } from\
    \ './product.entity';\n\n@Module({\n  imports: [TypeOrmModule.forFeature([Product])],\n\
    \  controllers: [InventoryController],\n  providers: [InventoryService]\n})\n\
    export class InventoryModule {}  \n\n// product.entity.ts\nimport { Entity, Column,\
    \ PrimaryGeneratedColumn } from 'typeorm';\n\n@Entity()\nexport class Product\
    \ {\n  @PrimaryGeneratedColumn()\n  id: number;\n\n  @Column()\n  name: string;\n\
    \n  @Column()\n  description: string;\n\n  @Column('decimal')\n  price: number;\n\
    \n  @Column()\n  availableQuantity: number;\n}\n\n// inventory.controller.ts\n\
    import { Controller, Get, Post, Put, Body, Param } from '@nestjs/common';\nimport\
    \ { InventoryService } from './inventory.service';\nimport { ProductDto } from\
    \ './inventory.dto';\n\n@Controller('inventory')\nexport class InventoryController\
    \ {\n  constructor(private readonly inventoryService: InventoryService) {}\n\n\
    \  @Post('add-product')\n  async addProduct(@Body() productDto: ProductDto) {\n\
    \    return this.inventoryService.addProduct(productDto);\n  }\n\n  @Get('products')\n\
    \  async getProducts() {\n    return this.inventoryService.getProducts();\n  }\n\
    \n  @Put('update-quantity/:id')\n  async updateQuantity(@Param('id') id: string,\
    \ @Body('quantity') quantity: number) {\n    return this.inventoryService.updateQuantity(id,\
    \ quantity);\n  }\n}\n\n// inventory.service.ts\nimport { Injectable } from '@nestjs/common';\n\
    import { InjectRepository } from '@nestjs/typeorm';\nimport { Repository } from\
    \ 'typeorm';\nimport { Product } from './product.entity';\nimport { ProductDto\
    \ } from './inventory.dto';\n\n@Injectable()\nexport class InventoryService {\n\
    \  constructor(\n    @InjectRepository(Product)\n    private productRepository:\
    \ Repository<Product>,\n  ) {}\n\n  async addProduct(productDto: ProductDto):\
    \ Promise<Product> {\n    const newProduct = this.productRepository.create(productDto);\n\
    \    return this.productRepository.save(newProduct);\n  }\n\n  async getProducts():\
    \ Promise<Product[]> {\n    return this.productRepository.find();\n  }\n\n  async\
    \ updateQuantity(id: string, quantity: number): Promise<Product> {\n    const\
    \ product = await this.productRepository.findOne(id);\n    if (!product) {\n \
    \     throw new Error('Product not found');\n    }\n\n    product.availableQuantity\
    \ = quantity;\n    return this.productRepository.save(product);\n  }\n}\n"
- source_sentence: "// wage-input.dto.ts\nimport { IsNumber, IsPositive } from 'class-validator';\n\
    \nexport class WageInputDto {\n  @IsNumber()\n  @IsPositive()\n  hourlyWage: number;\n\
    \n  @IsNumber()\n  @IsPositive()\n  hoursWorked: number;\n}\n\n// It will handle\
    \ the input validation too.\n\n\n// employee.controller.ts\nimport { Body, Controller,\
    \ Post } from '@nestjs/common';\nimport { WageInputDto } from './dto/wage-input.dto';\n\
    import { EmployeeService } from './employee.service';\n\n@Controller('employee')\n\
    export class EmployeeController {\n  constructor(private readonly employeeService:\
    \ EmployeeService) {}\n\n  @Post('/wage')\n  async getWage(@Body() input: WageInputDto)\
    \ {\n    return this.employeeService.getWage(input);\n  }\n}\n\n// employee.service.ts\n\
    import { Injectable } from '@nestjs/common';\nimport { WageInputDto } from './dto/wage-input.dto';\n\
    \nconst WEEKLY_HOURS = 40;\n\n@Injectable()\nexport class EmployeeService {\n\
    \  async getWage(input: WageInputDto) {\n    let weeklyHours = 0;\n    let overTimeHours\
    \ = 0;\n    let weeklyWage = 0;\n\n    const hasDoneOverTime = input.hoursWorked\
    \ > WEEKLY_HOURS;\n\n    if (hasDoneOverTime) {\n      weeklyHours = WEEKLY_HOURS;\n\
    \      overTimeHours = input.hoursWorked - WEEKLY_HOURS;\n    } else {\n     \
    \ weeklyHours = input.hoursWorked;\n    }\n\n    weeklyWage = weeklyHours * input.hourlyWage;\n\
    \n    if (hasDoneOverTime) {\n      weeklyWage = weeklyWage + overTimeHours *\
    \ (input.hourlyWage * 1.5);\n    }\n\n    return { weeklyWage };\n  }\n}"
  sentences:
  - "import { Controller, Post, Body, HttpException, HttpStatus } from '@nestjs/common';\n\
    \ninterface WeeklyWageInput {\n  hourlyWage: number;\n  hoursWorked: number;\n\
    }\n\n@Controller('calculate-weekly-wage')\nexport class WeeklyWageController {\n\
    \  @Post()\n  calculateWeeklyWage(@Body() data: WeeklyWageInput): { weeklyWage:\
    \ number } {\n    // Input validation\n    if (data.hourlyWage <= 0 || data.hoursWorked\
    \ <= 0 || !Number.isInteger(data.hoursWorked)) {\n      throw new HttpException('Invalid\
    \ input. Hourly wage must be positive and hours worked must be a positive integer',\
    \ HttpStatus.BAD_REQUEST);\n    }\n\n    const regularHours = Math.min(data.hoursWorked,\
    \ 40);\n    const overtimeHours = Math.max(data.hoursWorked - 40, 0);\n\n    const\
    \ weeklyWage = (regularHours * data.hourlyWage) + (overtimeHours * (1.5 * data.hourlyWage));\n\
    \n    return { weeklyWage };\n  }\n}\n"
  - "import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'orderBy'\n\
    })\nexport class OrderByPipe implements PipeTransform {\n  transform(array: any[],\
    \ key: string, order: 'asc' | 'desc'): any[] {\n    if (!Array.isArray(array)\
    \ || !key || (order !== 'asc' && order !== 'desc')) {\n      console.error('Invalid\
    \ input data');\n      return array;\n    }\n\n    const compareFn = (a: any,\
    \ b: any): number => {\n      if (a[key] < b[key]) {\n        return order ===\
    \ 'asc' ? -1 : 1;\n      }\n      if (a[key] > b[key]) {\n        return order\
    \ === 'asc' ? 1 : -1;\n      }\n      return 0;\n    };\n\n    return array.slice().sort(compareFn);\n\
    \  }\n}\n"
  - "public class PalindromeChecker {\n    public static boolean isPalindrome(String\
    \ str) {\n        str = str.toLowerCase().replaceAll(\"[^a-zA-Z0-9]\", \"\");\n\
    \        int left = 0;\n        int right = str.length() - 1;\n        \n    \
    \    while (left < right) {\n            if (str.charAt(left) != str.charAt(right))\
    \ {\n                return false;\n            }\n            left++;\n     \
    \       right--;\n        }\n        \n        return true;\n    }\n    \n   \
    \ public static void main(String[] args) {\n        String input1 = \"A man, a\
    \ plan, a canal: Panama\";\n        String input2 = \"race a car\";\n        \n\
    \        System.out.println(\"Input: '\" + input1 + \"' Output: \" + isPalindrome(input1));\n\
    \        System.out.println(\"Input: '\" + input2 + \"' Output: \" + isPalindrome(input2));\n\
    \    }\n}\n"
- source_sentence: 'FROM python:3.8

    WORKDIR /app


    COPY helloworld.py .

    RUN pip install --no-cache-dir -r requirements.txt

    CMD ["python", "helloworld.py"]



    ## PYTHON PROGRAM

    helloworld.py

    print("Hello, World!")



    ## BUILD COMMAND

    docker build -t "python:helloworld" .

    docker run -itd --name python python:helloworld'
  sentences:
  - '# Use a slim Python base image for optimization

    FROM python:3.9-slim


    # Set the working directory inside the container

    WORKDIR /app


    # Copy the Python script into the container

    COPY hello.py /app/hello.py


    # Define the command to run the Python script

    CMD ["python", "/app/hello.py"]

    '
  - "import java.util.HashMap;\n\npublic class Solution {\n    public int[] twoSum(int[]\
    \ nums, int target) {\n        HashMap<Integer, Integer> map = new HashMap<>();\n\
    \n        for (int i = 0; i < nums.length; i++) {\n            int complement\
    \ = target - nums[i];\n            if (map.containsKey(complement)) {\n      \
    \          return new int[]{map.get(complement), i};\n            }\n        \
    \    map.put(nums[i], i);\n        }\n\n        return new int[]{};\n    }\n}\n\
    \n// Example\nint[] array = new int[]{2, 7, 11, 15};\nint target = 9;\nSolution\
    \ solution = new Solution();\nint[] result = solution.twoSum(array, target);\n"
  - "function stripHtmlTags(input) {\n    if (!input) return '';\n\n    const tagRegex\
    \ = /<[^>]*>/g;\n    return input.replace(tagRegex, '');\n}\n"
- source_sentence: "def move_zeroes(nums):\n  count = 0\n  for i in range(len(nums)):\n\
    \    if nums[i] != 0:\n      nums[count], nums[i]= nums[i], nums[count]\n    \
    \  count += 1\n  for i in range(count, len(nums)):\n    nums[i] =0\n\ninput =\
    \ [int(x) for x in input(\"Enter integers separated by spaces: \").split()]\n\
    move_zeroes(input)\n\nprint(input)"
  sentences:
  - "import 'package:flutter/material.dart';\nimport 'package:firebase_core/firebase_core.dart';\n\
    import 'package:firebase_auth/firebase_auth.dart';\nimport 'package:firebase_database/firebase_database.dart';\n\
    \nvoid main() async {\n  WidgetsFlutterBinding.ensureInitialized();\n  await Firebase.initializeApp();\n\
    \  runApp(MyApp());\n}\n\nclass MyApp extends StatelessWidget {\n  final databaseRef\
    \ = FirebaseDatabase.instance.reference().child('messages');\n\n  @override\n\
    \  Widget build(BuildContext context) {\n    return MaterialApp(\n      home:\
    \ Scaffold(\n        appBar: AppBar(\n          title: Text('Real-Time Messages'),\n\
    \        ),\n        body: MessagesList(databaseRef: databaseRef),\n        floatingActionButton:\
    \ AddMessageButton(databaseRef: databaseRef),\n      ),\n    );\n  }\n}\n\nclass\
    \ MessagesList extends StatelessWidget {\n  final DatabaseReference databaseRef;\n\
    \n  MessagesList({required this.databaseRef});\n\n  @override\n  Widget build(BuildContext\
    \ context) {\n    return StreamBuilder(\n      stream: databaseRef.orderByChild('timestamp').onValue,\n\
    \      builder: (context, snapshot) {\n        if (snapshot.hasError) {\n    \
    \      return Text('Error: ${snapshot.error}');\n        }\n\n        if (!snapshot.hasData)\
    \ {\n          return Center(child: CircularProgressIndicator());\n        }\n\
    \n        List<Message> messages = [];\n        snapshot.data!.snapshot.value.forEach((key,\
    \ value) {\n          messages.add(Message.fromMap(value));\n        });\n   \
    \     messages.sort((a, b) => a.timestamp.compareTo(b.timestamp));\n\n       \
    \ return ListView.builder(\n          itemCount: messages.length,\n          itemBuilder:\
    \ (context, index) {\n            return ListTile(\n              title: Text(messages[index].text),\n\
    \            );\n          },\n        );\n      },\n    );\n  }\n}\n\nclass AddMessageButton\
    \ extends StatelessWidget {\n  final DatabaseReference databaseRef;\n\n  AddMessageButton({required\
    \ this.databaseRef});\n\n  @override\n  Widget build(BuildContext context) {\n\
    \    return FloatingActionButton(\n      onPressed: () {\n        databaseRef.push().set({\n\
    \          'text': 'New Message',\n          'timestamp': DateTime.now().millisecondsSinceEpoch\n\
    \        });\n      },\n      child: Icon(Icons.add),\n    );\n  }\n}\n\nclass\
    \ Message {\n  final String text;\n  final int timestamp;\n\n  Message({required\
    \ this.text, required this.timestamp});\n\n  factory Message.fromMap(Map<dynamic,\
    \ dynamic> map) {\n    return Message(\n      text: map['text'],\n      timestamp:\
    \ map['timestamp'],\n    );\n  }\n}\n"
  - "using System;\nusing System.Collections.Generic;\n\nclass BracketChecker\n{\n\
    \    private readonly Dictionary<char, char> bracketPairs = new Dictionary<char,\
    \ char>\n    {\n        { '(', ')' },\n        { '[', ']' },\n        { '{', '}'\
    \ }\n    };\n\n    public bool CheckBalancedBrackets(string input)\n    {\n  \
    \      if (string.IsNullOrEmpty(input))\n        {\n            return true;\n\
    \        }\n\n        Stack<char> stack = new Stack<char>();\n\n        foreach\
    \ (char c in input)\n        {\n            if (bracketPairs.ContainsValue(c))\n\
    \            {\n                if (stack.Count == 0 || bracketPairs[stack.Peek()]\
    \ != c)\n                {\n                    return false;\n              \
    \  }\n                stack.Pop();\n            }\n            else if (bracketPairs.ContainsKey(c))\n\
    \            {\n                stack.Push(c);\n            }\n        }\n\n \
    \       return stack.Count == 0;\n    }\n}\n\nclass Program\n{\n    static void\
    \ Main()\n    {\n        BracketChecker bracketChecker = new BracketChecker();\n\
    \n        string input1 = \"(a+[b*c]-{d/e})\";\n        Console.WriteLine(\"Input:\
    \ \\\"{0}\\\"\", input1);\n        Console.WriteLine(\"Output: {0}\\n\", bracketChecker.CheckBalancedBrackets(input1));\n\
    \n        string input2 = \"(a+[b*c)-{d/e}]\";\n        Console.WriteLine(\"Input:\
    \ \\\"{0}\\\"\", input2);\n        Console.WriteLine(\"Output: {0}\", bracketChecker.CheckBalancedBrackets(input2));\n\
    \    }\n}\n"
  - "def move_zeros_to_end(lst):\n    zero_count = 0\n    for i in range(len(lst)):\n\
    \        if lst[i] != 0:\n            lst[i], lst[zero_count] = lst[zero_count],\
    \ lst[i]\n            zero_count += 1\n\n# Test cases\nlst1 = [0, 1, 0, 3, 12]\n\
    move_zeros_to_end(lst1)\nprint(lst1)  # Output: [1, 3, 12, 0, 0]\n\nlst2 = [0,\
    \ 0, 1]\nmove_zeros_to_end(lst2)\nprint(lst2)  # Output: [1, 0, 0]\n"
model-index:
- name: SentenceTransformer based on distilbert/distilbert-base-uncased-finetuned-sst-2-english
  results:
  - task:
      type: semantic-similarity
      name: Semantic Similarity
    dataset:
      name: Unknown
      type: unknown
    metrics:
    - type: pearson_cosine
      value: 0.9000341656513303
      name: Pearson Cosine
    - type: spearman_cosine
      value: 0.9013693287916293
      name: Spearman Cosine
    - type: pearson_manhattan
      value: 0.8619949591168187
      name: Pearson Manhattan
    - type: spearman_manhattan
      value: 0.8020438201628594
      name: Spearman Manhattan
    - type: pearson_euclidean
      value: 0.868483180326987
      name: Pearson Euclidean
    - type: spearman_euclidean
      value: 0.8234464507775442
      name: Spearman Euclidean
    - type: pearson_dot
      value: 0.8494699061913786
      name: Pearson Dot
    - type: spearman_dot
      value: 0.8947516297094024
      name: Spearman Dot
    - type: pearson_max
      value: 0.9000341656513303
      name: Pearson Max
    - type: spearman_max
      value: 0.9013693287916293
      name: Spearman Max
---

# SentenceTransformer based on distilbert/distilbert-base-uncased-finetuned-sst-2-english

This is a [sentence-transformers](https://www.SBERT.net) model finetuned from [distilbert/distilbert-base-uncased-finetuned-sst-2-english](https://huggingface.co/distilbert/distilbert-base-uncased-finetuned-sst-2-english). It maps sentences & paragraphs to a 768-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more.

## Model Details

### Model Description
- **Model Type:** Sentence Transformer
- **Base model:** [distilbert/distilbert-base-uncased-finetuned-sst-2-english](https://huggingface.co/distilbert/distilbert-base-uncased-finetuned-sst-2-english) <!-- at revision 714eb0fa89d2f80546fda750413ed43d93601a13 -->
- **Maximum Sequence Length:** 512 tokens
- **Output Dimensionality:** 768 tokens
- **Similarity Function:** Cosine Similarity
<!-- - **Training Dataset:** Unknown -->
<!-- - **Language:** Unknown -->
<!-- - **License:** Unknown -->

### Model Sources

- **Documentation:** [Sentence Transformers Documentation](https://sbert.net)
- **Repository:** [Sentence Transformers on GitHub](https://github.com/UKPLab/sentence-transformers)
- **Hugging Face:** [Sentence Transformers on Hugging Face](https://huggingface.co/models?library=sentence-transformers)

### Full Model Architecture

```
SentenceTransformer(
  (0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: DistilBertModel 
  (1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
)
```

## Usage

### Direct Usage (Sentence Transformers)

First install the Sentence Transformers library:

```bash
pip install -U sentence-transformers
```

Then you can load this model and run inference.
```python
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("wasabibish/similarity-code-ai-generated")
# Run inference
sentences = [
    'def move_zeroes(nums):\n  count = 0\n  for i in range(len(nums)):\n    if nums[i] != 0:\n      nums[count], nums[i]= nums[i], nums[count]\n      count += 1\n  for i in range(count, len(nums)):\n    nums[i] =0\n\ninput = [int(x) for x in input("Enter integers separated by spaces: ").split()]\nmove_zeroes(input)\n\nprint(input)',
    'def move_zeros_to_end(lst):\n    zero_count = 0\n    for i in range(len(lst)):\n        if lst[i] != 0:\n            lst[i], lst[zero_count] = lst[zero_count], lst[i]\n            zero_count += 1\n\n# Test cases\nlst1 = [0, 1, 0, 3, 12]\nmove_zeros_to_end(lst1)\nprint(lst1)  # Output: [1, 3, 12, 0, 0]\n\nlst2 = [0, 0, 1]\nmove_zeros_to_end(lst2)\nprint(lst2)  # Output: [1, 0, 0]\n',
    'using System;\nusing System.Collections.Generic;\n\nclass BracketChecker\n{\n    private readonly Dictionary<char, char> bracketPairs = new Dictionary<char, char>\n    {\n        { \'(\', \')\' },\n        { \'[\', \']\' },\n        { \'{\', \'}\' }\n    };\n\n    public bool CheckBalancedBrackets(string input)\n    {\n        if (string.IsNullOrEmpty(input))\n        {\n            return true;\n        }\n\n        Stack<char> stack = new Stack<char>();\n\n        foreach (char c in input)\n        {\n            if (bracketPairs.ContainsValue(c))\n            {\n                if (stack.Count == 0 || bracketPairs[stack.Peek()] != c)\n                {\n                    return false;\n                }\n                stack.Pop();\n            }\n            else if (bracketPairs.ContainsKey(c))\n            {\n                stack.Push(c);\n            }\n        }\n\n        return stack.Count == 0;\n    }\n}\n\nclass Program\n{\n    static void Main()\n    {\n        BracketChecker bracketChecker = new BracketChecker();\n\n        string input1 = "(a+[b*c]-{d/e})";\n        Console.WriteLine("Input: \\"{0}\\"", input1);\n        Console.WriteLine("Output: {0}\\n", bracketChecker.CheckBalancedBrackets(input1));\n\n        string input2 = "(a+[b*c)-{d/e}]";\n        Console.WriteLine("Input: \\"{0}\\"", input2);\n        Console.WriteLine("Output: {0}", bracketChecker.CheckBalancedBrackets(input2));\n    }\n}\n',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
```

<!--
### Direct Usage (Transformers)

<details><summary>Click to see the direct usage in Transformers</summary>

</details>
-->

<!--
### Downstream Usage (Sentence Transformers)

You can finetune this model on your own dataset.

<details><summary>Click to expand</summary>

</details>
-->

<!--
### Out-of-Scope Use

*List how the model may foreseeably be misused and address what users ought not to do with the model.*
-->

## Evaluation

### Metrics

#### Semantic Similarity

* Evaluated with [<code>EmbeddingSimilarityEvaluator</code>](https://sbert.net/docs/package_reference/sentence_transformer/evaluation.html#sentence_transformers.evaluation.EmbeddingSimilarityEvaluator)

| Metric             | Value      |
|:-------------------|:-----------|
| pearson_cosine     | 0.9        |
| spearman_cosine    | 0.9014     |
| pearson_manhattan  | 0.862      |
| spearman_manhattan | 0.802      |
| pearson_euclidean  | 0.8685     |
| spearman_euclidean | 0.8234     |
| pearson_dot        | 0.8495     |
| spearman_dot       | 0.8948     |
| pearson_max        | 0.9        |
| **spearman_max**   | **0.9014** |

<!--
## Bias, Risks and Limitations

*What are the known or foreseeable issues stemming from this model? You could also flag here known failure cases or weaknesses of the model.*
-->

<!--
### Recommendations

*What are recommendations with respect to the foreseeable issues? For example, filtering explicit content.*
-->

## Training Details

### Training Dataset

#### Unnamed Dataset


* Size: 302 training samples
* Columns: <code>sentence1</code>, <code>sentence2</code>, and <code>score</code>
* Approximate statistics based on the first 302 samples:
  |         | sentence1                                                                           | sentence2                                                                           | score                                                          |
  |:--------|:------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------|:---------------------------------------------------------------|
  | type    | string                                                                              | string                                                                              | float                                                          |
  | details | <ul><li>min: 3 tokens</li><li>mean: 206.43 tokens</li><li>max: 512 tokens</li></ul> | <ul><li>min: 27 tokens</li><li>mean: 244.9 tokens</li><li>max: 512 tokens</li></ul> | <ul><li>min: 0.0</li><li>mean: 0.29</li><li>max: 0.9</li></ul> |
* Samples:
  | sentence1                                                                                                                                                                                                                                                           | sentence2                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | score            |
  |:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------|
  | <code>from django.views.generic import ListView<br><br>class PersonListView(ListView):<br>    model = Person<br>    template_name = 'person_list.html'<br><br>    def get_queryset(self):<br>        return Person.objects.filter(birthdate__year__lte=2005)</code> | <code>from myapp.models import Customer  # Import the Customer model from your Django app<br><br>def get_customers_with_zip_code_starting_with_123():<br>    customers = Customer.objects.filter(zip_code__startswith='123').values()  # Query to filter customers with zip_code starting with '123'<br>    return list(customers)  # Return a list of dictionaries for matching records<br></code>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | <code>0.4</code> |
  | <code><div class="content-box"><br>	<p>Welcome to our website!</p><br></div><br><style><br>	.content-box {<br>		margin: 20;<br>		background-colour: #00G;<br>	}<br></style></code>                                                                                  | <code>function createSentence(words, maxChars) {<br>    if (words.length === 0 || maxChars < 1) {<br>        return "";<br>    }<br><br>    let sentence = "";<br>    let currentLength = 0;<br><br>    for (let i = 0; i < words.length; i++) {<br>        if (sentence.length + words[i].length + 1 <= maxChars) {<br>            sentence += words[i] + " ";<br>            currentLength += words[i].length + 1;<br>        } else {<br>            break;<br>        }<br>    }<br><br>    if (sentence.length > 0) {<br>        sentence = sentence.trim() + ".";<br>    }<br><br>    return sentence;<br>}<br><br>// Test the function with the example<br>const words = ['hello', 'world', 'this', 'is', 'a', 'test'];<br>const maxChars = 20;<br>console.log(createSentence(words, maxChars)); // Output: 'hello world this.'<br></code>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | <code>0.1</code> |
  | <code>AAAAAA</code>                                                                                                                                                                                                                                                 | <code>#include <atlstr.h><br>#include <vector><br><br>class KMP {<br>public:<br>    std::vector<int> findPatternIndices(const CString& text, const CString& pattern) {<br>        std::vector<int> indices;<br>        if (pattern.IsEmpty() || text.IsEmpty()) {<br>            return indices;<br>        }<br><br>        std::vector<int> lps = computeLPSArray(pattern);<br><br>        int i = 0, j = 0;<br>        while (i < text.GetLength()) {<br>            if (pattern[j] == text[i]) {<br>                j++;<br>                i++;<br>            }<br><br>            if (j == pattern.GetLength()) {<br>                indices.push_back(i - j);<br>                j = lps[j - 1];<br>            } else if (i < text.GetLength() && pattern[j] != text[i]) {<br>                if (j != 0) {<br>                    j = lps[j - 1];<br>                } else {<br>                    i++;<br>                }<br>            }<br>        }<br><br>        return indices;<br>    }<br><br>private:<br>    std::vector<int> computeLPSArray(const CString& pattern) {<br>        int len = 0;<br>        std::vector<int> lps(pattern.GetLength(), 0);<br>        <br>        int i = 1;<br>        while (i < pattern.GetLength()) {<br>            if (pattern[i] == pattern[len]) {<br>                len++;<br>                lps[i] = len;<br>                i++;<br>            } else {<br>                if (len != 0) {<br>                    len = lps[len - 1];<br>                } else {<br>                    lps[i] = 0;<br>                    i++;<br>                }<br>            }<br>        }<br><br>        return lps;<br>    }<br>};<br><br>void testKMP() {<br>    KMP kmp;<br>    <br>    CString text1 = "ABABDABACDABABCABAB";<br>    CString pattern1 = "ABABCABAB";<br>    std::vector<int> result1 = kmp.findPatternIndices(text1, pattern1);<br>    OutputDebugString("Input: text='ABABDABACDABABCABAB', pattern='ABABCABAB' -> Output: [");<br>    for (int i = 0; i < result1.size(); i++) {<br>        OutputDebugString(result1[i]);<br>        if (i < result1.size() - 1) {<br>            OutputDebugString(",");<br>        }<br>    }<br>    OutputDebugString("]\n");<br><br>    CString text2 = "AAAAA";<br>    CString pattern2 = "AAA";<br>    std::vector<int> result2 = kmp.findPatternIndices(text2, pattern2);<br>    OutputDebugString("Input: text='AAAAA', pattern='AAA' -> Output: [");<br>    for (int i = 0; i < result2.size(); i++) {<br>        OutputDebugString(result2[i]);<br>        if (i < result2.size() - 1) {<br>            OutputDebugString(",");<br>        }<br>    }<br>    OutputDebugString("]\n");<br>}<br></code> | <code>0.0</code> |
* Loss: [<code>CosineSimilarityLoss</code>](https://sbert.net/docs/package_reference/sentence_transformer/losses.html#cosinesimilarityloss) with these parameters:
  ```json
  {
      "loss_fct": "torch.nn.modules.loss.MSELoss"
  }
  ```

### Evaluation Dataset

#### Unnamed Dataset


* Size: 76 evaluation samples
* Columns: <code>sentence1</code>, <code>sentence2</code>, and <code>score</code>
* Approximate statistics based on the first 76 samples:
  |         | sentence1                                                                           | sentence2                                                                            | score                                                          |
  |:--------|:------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------|:---------------------------------------------------------------|
  | type    | string                                                                              | string                                                                               | float                                                          |
  | details | <ul><li>min: 5 tokens</li><li>mean: 216.92 tokens</li><li>max: 512 tokens</li></ul> | <ul><li>min: 54 tokens</li><li>mean: 254.78 tokens</li><li>max: 512 tokens</li></ul> | <ul><li>min: 0.0</li><li>mean: 0.33</li><li>max: 0.9</li></ul> |
* Samples:
  | sentence1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | sentence2                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | score            |
  |:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------|
  | <code>function stripHtmlTags(str) {<br>  return str.replace(/<[^>]*>/g, '');<br>}<br><br>const input = '<p>Hello <em>World</em>!</p>';<br><br>const output = stripHtmlTags(input);<br><br>console.log(output);</code>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | <code>function stripHtmlTags(input) {<br>    if (!input) return '';<br><br>    const tagRegex = /<[^>]*>/g;<br>    return input.replace(tagRegex, '');<br>}<br></code>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | <code>0.6</code> |
  | <code><?php<br>function getTopThreeWords($text) {<br>// Remove punctuation and convert to lowercase<br>$words = str_word_count(strtolower(preg_replace('/[^\p{L}\p{N}\s]/u', ' ', $text)), 1);<br><br>// Count the frequency of each word<br>$wordFrequency = array_count_values($words);<br><br>// Sort the words by frequency in descending order<br>arsort($wordFrequency);<br><br>// Get the top three words<br>$topThreeWords = array_slice($wordFrequency, 0, 3, true);<br><br>// Format the output<br>$output = [];<br>foreach ($topThreeWords as $word => $count) {<br>$output[] = "('$word', $count)";<br>}<br><br>return '[' . implode(', ', $output) . ']';<br>}<br><br>// Example usage:<br>$inputText = "The quick brown fox jumps over the lazy dog. The dog was lazy!";<br>echo getTopThreeWords($inputText);<br>?></code> | <code><?php<br><br>function countTopWords($inputString) {<br>    // Convert the input string to lowercase and remove punctuation<br>    $cleanString = preg_replace("/[\W_]+/", " ", strtolower($inputString));<br><br>    // Split the string into an array of words<br>    $words = explode(" ", $cleanString);<br><br>    // Count the frequency of each word<br>    $wordCount = array_count_values($words);<br><br>    // Sort the words by frequency in descending order<br>    arsort($wordCount);<br><br>    // Get the top three most common words<br>    $topWords = array_slice($wordCount, 0, 3);<br><br>    // Format the output as an array of tuples<br>    $output = [];<br>    foreach ($topWords as $word => $count) {<br>        $output[] = [$word, $count];<br>    }<br><br>    return $output;<br>}<br><br>// Test the function with the example input<br>$inputString = "The quick brown fox jumps over the lazy dog. The dog was lazy!";<br>$output = countTopWords($inputString);<br>print_r($output);<br><br>?><br></code>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | <code>0.3</code> |
  | <code>AAAAAA</code>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | <code>#include <atlstr.h><br>#include <vector><br><br>class KMP {<br>public:<br>    std::vector<int> findPatternIndices(const CString& text, const CString& pattern) {<br>        std::vector<int> indices;<br>        if (pattern.IsEmpty() || text.IsEmpty()) {<br>            return indices;<br>        }<br><br>        std::vector<int> lps = computeLPSArray(pattern);<br><br>        int i = 0, j = 0;<br>        while (i < text.GetLength()) {<br>            if (pattern[j] == text[i]) {<br>                j++;<br>                i++;<br>            }<br><br>            if (j == pattern.GetLength()) {<br>                indices.push_back(i - j);<br>                j = lps[j - 1];<br>            } else if (i < text.GetLength() && pattern[j] != text[i]) {<br>                if (j != 0) {<br>                    j = lps[j - 1];<br>                } else {<br>                    i++;<br>                }<br>            }<br>        }<br><br>        return indices;<br>    }<br><br>private:<br>    std::vector<int> computeLPSArray(const CString& pattern) {<br>        int len = 0;<br>        std::vector<int> lps(pattern.GetLength(), 0);<br>        <br>        int i = 1;<br>        while (i < pattern.GetLength()) {<br>            if (pattern[i] == pattern[len]) {<br>                len++;<br>                lps[i] = len;<br>                i++;<br>            } else {<br>                if (len != 0) {<br>                    len = lps[len - 1];<br>                } else {<br>                    lps[i] = 0;<br>                    i++;<br>                }<br>            }<br>        }<br><br>        return lps;<br>    }<br>};<br><br>void testKMP() {<br>    KMP kmp;<br>    <br>    CString text1 = "ABABDABACDABABCABAB";<br>    CString pattern1 = "ABABCABAB";<br>    std::vector<int> result1 = kmp.findPatternIndices(text1, pattern1);<br>    OutputDebugString("Input: text='ABABDABACDABABCABAB', pattern='ABABCABAB' -> Output: [");<br>    for (int i = 0; i < result1.size(); i++) {<br>        OutputDebugString(result1[i]);<br>        if (i < result1.size() - 1) {<br>            OutputDebugString(",");<br>        }<br>    }<br>    OutputDebugString("]\n");<br><br>    CString text2 = "AAAAA";<br>    CString pattern2 = "AAA";<br>    std::vector<int> result2 = kmp.findPatternIndices(text2, pattern2);<br>    OutputDebugString("Input: text='AAAAA', pattern='AAA' -> Output: [");<br>    for (int i = 0; i < result2.size(); i++) {<br>        OutputDebugString(result2[i]);<br>        if (i < result2.size() - 1) {<br>            OutputDebugString(",");<br>        }<br>    }<br>    OutputDebugString("]\n");<br>}<br></code> | <code>0.0</code> |
* Loss: [<code>CosineSimilarityLoss</code>](https://sbert.net/docs/package_reference/sentence_transformer/losses.html#cosinesimilarityloss) with these parameters:
  ```json
  {
      "loss_fct": "torch.nn.modules.loss.MSELoss"
  }
  ```

### Training Hyperparameters
#### Non-Default Hyperparameters

- `eval_strategy`: steps
- `weight_decay`: 0.2
- `max_steps`: 100
- `warmup_steps`: 150

#### All Hyperparameters
<details><summary>Click to expand</summary>

- `overwrite_output_dir`: False
- `do_predict`: False
- `eval_strategy`: steps
- `prediction_loss_only`: True
- `per_device_train_batch_size`: 8
- `per_device_eval_batch_size`: 8
- `per_gpu_train_batch_size`: None
- `per_gpu_eval_batch_size`: None
- `gradient_accumulation_steps`: 1
- `eval_accumulation_steps`: None
- `torch_empty_cache_steps`: None
- `learning_rate`: 5e-05
- `weight_decay`: 0.2
- `adam_beta1`: 0.9
- `adam_beta2`: 0.999
- `adam_epsilon`: 1e-08
- `max_grad_norm`: 1.0
- `num_train_epochs`: 3.0
- `max_steps`: 100
- `lr_scheduler_type`: linear
- `lr_scheduler_kwargs`: {}
- `warmup_ratio`: 0.0
- `warmup_steps`: 150
- `log_level`: passive
- `log_level_replica`: warning
- `log_on_each_node`: True
- `logging_nan_inf_filter`: True
- `save_safetensors`: True
- `save_on_each_node`: False
- `save_only_model`: False
- `restore_callback_states_from_checkpoint`: False
- `no_cuda`: False
- `use_cpu`: False
- `use_mps_device`: False
- `seed`: 42
- `data_seed`: None
- `jit_mode_eval`: False
- `use_ipex`: False
- `bf16`: False
- `fp16`: False
- `fp16_opt_level`: O1
- `half_precision_backend`: auto
- `bf16_full_eval`: False
- `fp16_full_eval`: False
- `tf32`: None
- `local_rank`: 0
- `ddp_backend`: None
- `tpu_num_cores`: None
- `tpu_metrics_debug`: False
- `debug`: []
- `dataloader_drop_last`: False
- `dataloader_num_workers`: 0
- `dataloader_prefetch_factor`: None
- `past_index`: -1
- `disable_tqdm`: False
- `remove_unused_columns`: True
- `label_names`: None
- `load_best_model_at_end`: False
- `ignore_data_skip`: False
- `fsdp`: []
- `fsdp_min_num_params`: 0
- `fsdp_config`: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
- `fsdp_transformer_layer_cls_to_wrap`: None
- `accelerator_config`: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
- `deepspeed`: None
- `label_smoothing_factor`: 0.0
- `optim`: adamw_torch
- `optim_args`: None
- `adafactor`: False
- `group_by_length`: False
- `length_column_name`: length
- `ddp_find_unused_parameters`: None
- `ddp_bucket_cap_mb`: None
- `ddp_broadcast_buffers`: False
- `dataloader_pin_memory`: True
- `dataloader_persistent_workers`: False
- `skip_memory_metrics`: True
- `use_legacy_prediction_loop`: False
- `push_to_hub`: False
- `resume_from_checkpoint`: None
- `hub_model_id`: None
- `hub_strategy`: every_save
- `hub_private_repo`: False
- `hub_always_push`: False
- `gradient_checkpointing`: False
- `gradient_checkpointing_kwargs`: None
- `include_inputs_for_metrics`: False
- `eval_do_concat_batches`: True
- `fp16_backend`: auto
- `push_to_hub_model_id`: None
- `push_to_hub_organization`: None
- `mp_parameters`: 
- `auto_find_batch_size`: False
- `full_determinism`: False
- `torchdynamo`: None
- `ray_scope`: last
- `ddp_timeout`: 1800
- `torch_compile`: False
- `torch_compile_backend`: None
- `torch_compile_mode`: None
- `dispatch_batches`: None
- `split_batches`: None
- `include_tokens_per_second`: False
- `include_num_input_tokens_seen`: False
- `neftune_noise_alpha`: None
- `optim_target_modules`: None
- `batch_eval_metrics`: False
- `eval_on_start`: False
- `eval_use_gather_object`: False
- `batch_sampler`: batch_sampler
- `multi_dataset_batch_sampler`: proportional

</details>

### Training Logs
| Epoch  | Step | loss   | spearman_max |
|:------:|:----:|:------:|:------------:|
| 0.5263 | 20   | 0.3765 | 0.5421       |
| 1.0526 | 40   | 0.1518 | 0.5774       |
| 1.5789 | 60   | 0.0501 | 0.8533       |
| 2.1053 | 80   | 0.0217 | 0.8900       |
| 2.6316 | 100  | 0.0168 | 0.9014       |


### Framework Versions
- Python: 3.9.10
- Sentence Transformers: 3.1.0
- Transformers: 4.44.2
- PyTorch: 2.4.1+cpu
- Accelerate: 0.34.2
- Datasets: 3.0.0
- Tokenizers: 0.19.1

## Citation

### BibTeX

#### Sentence Transformers
```bibtex
@inproceedings{reimers-2019-sentence-bert,
    title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
    author = "Reimers, Nils and Gurevych, Iryna",
    booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
    month = "11",
    year = "2019",
    publisher = "Association for Computational Linguistics",
    url = "https://arxiv.org/abs/1908.10084",
}
```

<!--
## Glossary

*Clearly define terms in order to be accessible across audiences.*
-->

<!--
## Model Card Authors

*Lists the people who create the model card, providing recognition and accountability for the detailed work that goes into its construction.*
-->

<!--
## Model Card Contact

*Provides a way for people who have updates to the Model Card, suggestions, or questions, to contact the Model Card authors.*
-->