mirror of
https://github.com/open-compass/opencompass.git
synced 2025-05-30 16:03:24 +08:00
1738 lines
28 KiB
Python
1738 lines
28 KiB
Python
![]() |
# Copyright 2023 The Google Research Authors.
|
|||
|
#
|
|||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|||
|
# you may not use this file except in compliance with the License.
|
|||
|
# You may obtain a copy of the License at
|
|||
|
#
|
|||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
#
|
|||
|
# Unless required by applicable law or agreed to in writing, software
|
|||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|||
|
# See the License for the specific language governing permissions and
|
|||
|
# limitations under the License.
|
|||
|
|
|||
|
"""Utility library of instructions."""
|
|||
|
|
|||
|
import functools
|
|||
|
import random
|
|||
|
import re
|
|||
|
|
|||
|
import immutabledict
|
|||
|
import nltk
|
|||
|
import pkg_resources
|
|||
|
from packaging import version
|
|||
|
|
|||
|
|
|||
|
# Downloading 'punkt' with nltk<3.9 has a remote code vuln.
|
|||
|
# see https://github.com/EleutherAI/lm-evaluation-harness/issues/2210
|
|||
|
# and https://github.com/nltk/nltk/issues/3266
|
|||
|
# for more information.
|
|||
|
NLTK_MIN_VERSION = "3.9.1"
|
|||
|
|
|||
|
|
|||
|
def download_nltk_resources():
|
|||
|
"""Download 'punkt' if not already installed"""
|
|||
|
nltk_version = pkg_resources.get_distribution("nltk").version
|
|||
|
assert (
|
|||
|
version.parse(nltk_version) >= version.parse(NLTK_MIN_VERSION)
|
|||
|
), f"`nltk` version {nltk_version} is not >= {NLTK_MIN_VERSION}. Please update `nltk` before proceeding--older versions are vulnerable to a remote code execution vulnerability."
|
|||
|
|
|||
|
try:
|
|||
|
nltk.data.find("tokenizers/punkt_tab")
|
|||
|
except LookupError:
|
|||
|
nltk.download("punkt_tab")
|
|||
|
|
|||
|
|
|||
|
download_nltk_resources()
|
|||
|
|
|||
|
WORD_LIST = [
|
|||
|
"western",
|
|||
|
"sentence",
|
|||
|
"signal",
|
|||
|
"dump",
|
|||
|
"spot",
|
|||
|
"opposite",
|
|||
|
"bottom",
|
|||
|
"potato",
|
|||
|
"administration",
|
|||
|
"working",
|
|||
|
"welcome",
|
|||
|
"morning",
|
|||
|
"good",
|
|||
|
"agency",
|
|||
|
"primary",
|
|||
|
"wish",
|
|||
|
"responsibility",
|
|||
|
"press",
|
|||
|
"problem",
|
|||
|
"president",
|
|||
|
"steal",
|
|||
|
"brush",
|
|||
|
"read",
|
|||
|
"type",
|
|||
|
"beat",
|
|||
|
"trainer",
|
|||
|
"growth",
|
|||
|
"lock",
|
|||
|
"bone",
|
|||
|
"case",
|
|||
|
"equal",
|
|||
|
"comfortable",
|
|||
|
"region",
|
|||
|
"replacement",
|
|||
|
"performance",
|
|||
|
"mate",
|
|||
|
"walk",
|
|||
|
"medicine",
|
|||
|
"film",
|
|||
|
"thing",
|
|||
|
"rock",
|
|||
|
"tap",
|
|||
|
"total",
|
|||
|
"competition",
|
|||
|
"ease",
|
|||
|
"south",
|
|||
|
"establishment",
|
|||
|
"gather",
|
|||
|
"parking",
|
|||
|
"world",
|
|||
|
"plenty",
|
|||
|
"breath",
|
|||
|
"claim",
|
|||
|
"alcohol",
|
|||
|
"trade",
|
|||
|
"dear",
|
|||
|
"highlight",
|
|||
|
"street",
|
|||
|
"matter",
|
|||
|
"decision",
|
|||
|
"mess",
|
|||
|
"agreement",
|
|||
|
"studio",
|
|||
|
"coach",
|
|||
|
"assist",
|
|||
|
"brain",
|
|||
|
"wing",
|
|||
|
"style",
|
|||
|
"private",
|
|||
|
"top",
|
|||
|
"brown",
|
|||
|
"leg",
|
|||
|
"buy",
|
|||
|
"procedure",
|
|||
|
"method",
|
|||
|
"speed",
|
|||
|
"high",
|
|||
|
"company",
|
|||
|
"valuable",
|
|||
|
"pie",
|
|||
|
"analyst",
|
|||
|
"session",
|
|||
|
"pattern",
|
|||
|
"district",
|
|||
|
"pleasure",
|
|||
|
"dinner",
|
|||
|
"swimming",
|
|||
|
"joke",
|
|||
|
"order",
|
|||
|
"plate",
|
|||
|
"department",
|
|||
|
"motor",
|
|||
|
"cell",
|
|||
|
"spend",
|
|||
|
"cabinet",
|
|||
|
"difference",
|
|||
|
"power",
|
|||
|
"examination",
|
|||
|
"engine",
|
|||
|
"horse",
|
|||
|
"dimension",
|
|||
|
"pay",
|
|||
|
"toe",
|
|||
|
"curve",
|
|||
|
"literature",
|
|||
|
"bother",
|
|||
|
"fire",
|
|||
|
"possibility",
|
|||
|
"debate",
|
|||
|
"activity",
|
|||
|
"passage",
|
|||
|
"hello",
|
|||
|
"cycle",
|
|||
|
"background",
|
|||
|
"quiet",
|
|||
|
"author",
|
|||
|
"effect",
|
|||
|
"actor",
|
|||
|
"page",
|
|||
|
"bicycle",
|
|||
|
"error",
|
|||
|
"throat",
|
|||
|
"attack",
|
|||
|
"character",
|
|||
|
"phone",
|
|||
|
"tea",
|
|||
|
"increase",
|
|||
|
"outcome",
|
|||
|
"file",
|
|||
|
"specific",
|
|||
|
"inspector",
|
|||
|
"internal",
|
|||
|
"potential",
|
|||
|
"staff",
|
|||
|
"building",
|
|||
|
"employer",
|
|||
|
"shoe",
|
|||
|
"hand",
|
|||
|
"direction",
|
|||
|
"garden",
|
|||
|
"purchase",
|
|||
|
"interview",
|
|||
|
"study",
|
|||
|
"recognition",
|
|||
|
"member",
|
|||
|
"spiritual",
|
|||
|
"oven",
|
|||
|
"sandwich",
|
|||
|
"weird",
|
|||
|
"passenger",
|
|||
|
"particular",
|
|||
|
"response",
|
|||
|
"reaction",
|
|||
|
"size",
|
|||
|
"variation",
|
|||
|
"a",
|
|||
|
"cancel",
|
|||
|
"candy",
|
|||
|
"exit",
|
|||
|
"guest",
|
|||
|
"condition",
|
|||
|
"fly",
|
|||
|
"price",
|
|||
|
"weakness",
|
|||
|
"convert",
|
|||
|
"hotel",
|
|||
|
"great",
|
|||
|
"mouth",
|
|||
|
"mind",
|
|||
|
"song",
|
|||
|
"sugar",
|
|||
|
"suspect",
|
|||
|
"telephone",
|
|||
|
"ear",
|
|||
|
"roof",
|
|||
|
"paint",
|
|||
|
"refrigerator",
|
|||
|
"organization",
|
|||
|
"jury",
|
|||
|
"reward",
|
|||
|
"engineering",
|
|||
|
"day",
|
|||
|
"possession",
|
|||
|
"crew",
|
|||
|
"bar",
|
|||
|
"road",
|
|||
|
"description",
|
|||
|
"celebration",
|
|||
|
"score",
|
|||
|
"mark",
|
|||
|
"letter",
|
|||
|
"shower",
|
|||
|
"suggestion",
|
|||
|
"sir",
|
|||
|
"luck",
|
|||
|
"national",
|
|||
|
"progress",
|
|||
|
"hall",
|
|||
|
"stroke",
|
|||
|
"theory",
|
|||
|
"offer",
|
|||
|
"story",
|
|||
|
"tax",
|
|||
|
"definition",
|
|||
|
"history",
|
|||
|
"ride",
|
|||
|
"medium",
|
|||
|
"opening",
|
|||
|
"glass",
|
|||
|
"elevator",
|
|||
|
"stomach",
|
|||
|
"question",
|
|||
|
"ability",
|
|||
|
"leading",
|
|||
|
"village",
|
|||
|
"computer",
|
|||
|
"city",
|
|||
|
"grand",
|
|||
|
"confidence",
|
|||
|
"candle",
|
|||
|
"priest",
|
|||
|
"recommendation",
|
|||
|
"point",
|
|||
|
"necessary",
|
|||
|
"body",
|
|||
|
"desk",
|
|||
|
"secret",
|
|||
|
"horror",
|
|||
|
"noise",
|
|||
|
"culture",
|
|||
|
"warning",
|
|||
|
"water",
|
|||
|
"round",
|
|||
|
"diet",
|
|||
|
"flower",
|
|||
|
"bus",
|
|||
|
"tough",
|
|||
|
"permission",
|
|||
|
"week",
|
|||
|
"prompt",
|
|||
|
"connection",
|
|||
|
"abuse",
|
|||
|
"height",
|
|||
|
"save",
|
|||
|
"corner",
|
|||
|
"border",
|
|||
|
"stress",
|
|||
|
"drive",
|
|||
|
"stop",
|
|||
|
"rip",
|
|||
|
"meal",
|
|||
|
"listen",
|
|||
|
"confusion",
|
|||
|
"girlfriend",
|
|||
|
"living",
|
|||
|
"relation",
|
|||
|
"significance",
|
|||
|
"plan",
|
|||
|
"creative",
|
|||
|
"atmosphere",
|
|||
|
"blame",
|
|||
|
"invite",
|
|||
|
"housing",
|
|||
|
"paper",
|
|||
|
"drink",
|
|||
|
"roll",
|
|||
|
"silver",
|
|||
|
"drunk",
|
|||
|
"age",
|
|||
|
"damage",
|
|||
|
"smoke",
|
|||
|
"environment",
|
|||
|
"pack",
|
|||
|
"savings",
|
|||
|
"influence",
|
|||
|
"tourist",
|
|||
|
"rain",
|
|||
|
"post",
|
|||
|
"sign",
|
|||
|
"grandmother",
|
|||
|
"run",
|
|||
|
"profit",
|
|||
|
"push",
|
|||
|
"clerk",
|
|||
|
"final",
|
|||
|
"wine",
|
|||
|
"swim",
|
|||
|
"pause",
|
|||
|
"stuff",
|
|||
|
"singer",
|
|||
|
"funeral",
|
|||
|
"average",
|
|||
|
"source",
|
|||
|
"scene",
|
|||
|
"tradition",
|
|||
|
"personal",
|
|||
|
"snow",
|
|||
|
"nobody",
|
|||
|
"distance",
|
|||
|
"sort",
|
|||
|
"sensitive",
|
|||
|
"animal",
|
|||
|
"major",
|
|||
|
"negotiation",
|
|||
|
"click",
|
|||
|
"mood",
|
|||
|
"period",
|
|||
|
"arrival",
|
|||
|
"expression",
|
|||
|
"holiday",
|
|||
|
"repeat",
|
|||
|
"dust",
|
|||
|
"closet",
|
|||
|
"gold",
|
|||
|
"bad",
|
|||
|
"sail",
|
|||
|
"combination",
|
|||
|
"clothes",
|
|||
|
"emphasis",
|
|||
|
"duty",
|
|||
|
"black",
|
|||
|
"step",
|
|||
|
"school",
|
|||
|
"jump",
|
|||
|
"document",
|
|||
|
"professional",
|
|||
|
"lip",
|
|||
|
"chemical",
|
|||
|
"front",
|
|||
|
"wake",
|
|||
|
"while",
|
|||
|
"inside",
|
|||
|
"watch",
|
|||
|
"row",
|
|||
|
"subject",
|
|||
|
"penalty",
|
|||
|
"balance",
|
|||
|
"possible",
|
|||
|
"adult",
|
|||
|
"aside",
|
|||
|
"sample",
|
|||
|
"appeal",
|
|||
|
"wedding",
|
|||
|
"depth",
|
|||
|
"king",
|
|||
|
"award",
|
|||
|
"wife",
|
|||
|
"blow",
|
|||
|
"site",
|
|||
|
"camp",
|
|||
|
"music",
|
|||
|
"safe",
|
|||
|
"gift",
|
|||
|
"fault",
|
|||
|
"guess",
|
|||
|
"act",
|
|||
|
"shame",
|
|||
|
"drama",
|
|||
|
"capital",
|
|||
|
"exam",
|
|||
|
"stupid",
|
|||
|
"record",
|
|||
|
"sound",
|
|||
|
"swing",
|
|||
|
"novel",
|
|||
|
"minimum",
|
|||
|
"ratio",
|
|||
|
"machine",
|
|||
|
"shape",
|
|||
|
"lead",
|
|||
|
"operation",
|
|||
|
"salary",
|
|||
|
"cloud",
|
|||
|
"affair",
|
|||
|
"hit",
|
|||
|
"chapter",
|
|||
|
"stage",
|
|||
|
"quantity",
|
|||
|
"access",
|
|||
|
"army",
|
|||
|
"chain",
|
|||
|
"traffic",
|
|||
|
"kick",
|
|||
|
"analysis",
|
|||
|
"airport",
|
|||
|
"time",
|
|||
|
"vacation",
|
|||
|
"philosophy",
|
|||
|
"ball",
|
|||
|
"chest",
|
|||
|
"thanks",
|
|||
|
"place",
|
|||
|
"mountain",
|
|||
|
"advertising",
|
|||
|
"red",
|
|||
|
"past",
|
|||
|
"rent",
|
|||
|
"return",
|
|||
|
"tour",
|
|||
|
"house",
|
|||
|
"construction",
|
|||
|
"net",
|
|||
|
"native",
|
|||
|
"war",
|
|||
|
"figure",
|
|||
|
"fee",
|
|||
|
"spray",
|
|||
|
"user",
|
|||
|
"dirt",
|
|||
|
"shot",
|
|||
|
"task",
|
|||
|
"stick",
|
|||
|
"friend",
|
|||
|
"software",
|
|||
|
"promotion",
|
|||
|
"interaction",
|
|||
|
"surround",
|
|||
|
"block",
|
|||
|
"purpose",
|
|||
|
"practice",
|
|||
|
"conflict",
|
|||
|
"routine",
|
|||
|
"requirement",
|
|||
|
"bonus",
|
|||
|
"hole",
|
|||
|
"state",
|
|||
|
"junior",
|
|||
|
"sweet",
|
|||
|
"catch",
|
|||
|
"tear",
|
|||
|
"fold",
|
|||
|
"wall",
|
|||
|
"editor",
|
|||
|
"life",
|
|||
|
"position",
|
|||
|
"pound",
|
|||
|
"respect",
|
|||
|
"bathroom",
|
|||
|
"coat",
|
|||
|
"script",
|
|||
|
"job",
|
|||
|
"teach",
|
|||
|
"birth",
|
|||
|
"view",
|
|||
|
"resolve",
|
|||
|
"theme",
|
|||
|
"employee",
|
|||
|
"doubt",
|
|||
|
"market",
|
|||
|
"education",
|
|||
|
"serve",
|
|||
|
"recover",
|
|||
|
"tone",
|
|||
|
"harm",
|
|||
|
"miss",
|
|||
|
"union",
|
|||
|
"understanding",
|
|||
|
"cow",
|
|||
|
"river",
|
|||
|
"association",
|
|||
|
"concept",
|
|||
|
"training",
|
|||
|
"recipe",
|
|||
|
"relationship",
|
|||
|
"reserve",
|
|||
|
"depression",
|
|||
|
"proof",
|
|||
|
"hair",
|
|||
|
"revenue",
|
|||
|
"independent",
|
|||
|
"lift",
|
|||
|
"assignment",
|
|||
|
"temporary",
|
|||
|
"amount",
|
|||
|
"loss",
|
|||
|
"edge",
|
|||
|
"track",
|
|||
|
"check",
|
|||
|
"rope",
|
|||
|
"estimate",
|
|||
|
"pollution",
|
|||
|
"stable",
|
|||
|
"message",
|
|||
|
"delivery",
|
|||
|
"perspective",
|
|||
|
"mirror",
|
|||
|
"assistant",
|
|||
|
"representative",
|
|||
|
"witness",
|
|||
|
"nature",
|
|||
|
"judge",
|
|||
|
"fruit",
|
|||
|
"tip",
|
|||
|
"devil",
|
|||
|
"town",
|
|||
|
"emergency",
|
|||
|
"upper",
|
|||
|
"drop",
|
|||
|
"stay",
|
|||
|
"human",
|
|||
|
"neck",
|
|||
|
"speaker",
|
|||
|
"network",
|
|||
|
"sing",
|
|||
|
"resist",
|
|||
|
"league",
|
|||
|
"trip",
|
|||
|
"signature",
|
|||
|
"lawyer",
|
|||
|
"importance",
|
|||
|
"gas",
|
|||
|
"choice",
|
|||
|
"engineer",
|
|||
|
"success",
|
|||
|
"part",
|
|||
|
"external",
|
|||
|
"worker",
|
|||
|
"simple",
|
|||
|
"quarter",
|
|||
|
"student",
|
|||
|
"heart",
|
|||
|
"pass",
|
|||
|
"spite",
|
|||
|
"shift",
|
|||
|
"rough",
|
|||
|
"lady",
|
|||
|
"grass",
|
|||
|
"community",
|
|||
|
"garage",
|
|||
|
"youth",
|
|||
|
"standard",
|
|||
|
"skirt",
|
|||
|
"promise",
|
|||
|
"blind",
|
|||
|
"television",
|
|||
|
"disease",
|
|||
|
"commission",
|
|||
|
"positive",
|
|||
|
"energy",
|
|||
|
"calm",
|
|||
|
"presence",
|
|||
|
"tune",
|
|||
|
"basis",
|
|||
|
"preference",
|
|||
|
"head",
|
|||
|
"common",
|
|||
|
"cut",
|
|||
|
"somewhere",
|
|||
|
"presentation",
|
|||
|
"current",
|
|||
|
"thought",
|
|||
|
"revolution",
|
|||
|
"effort",
|
|||
|
"master",
|
|||
|
"implement",
|
|||
|
"republic",
|
|||
|
"floor",
|
|||
|
"principle",
|
|||
|
"stranger",
|
|||
|
"shoulder",
|
|||
|
"grade",
|
|||
|
"button",
|
|||
|
"tennis",
|
|||
|
"police",
|
|||
|
"collection",
|
|||
|
"account",
|
|||
|
"register",
|
|||
|
"glove",
|
|||
|
"divide",
|
|||
|
"professor",
|
|||
|
"chair",
|
|||
|
"priority",
|
|||
|
"combine",
|
|||
|
"peace",
|
|||
|
"extension",
|
|||
|
"maybe",
|
|||
|
"evening",
|
|||
|
"frame",
|
|||
|
"sister",
|
|||
|
"wave",
|
|||
|
"code",
|
|||
|
"application",
|
|||
|
"mouse",
|
|||
|
"match",
|
|||
|
"counter",
|
|||
|
"bottle",
|
|||
|
"half",
|
|||
|
"cheek",
|
|||
|
"resolution",
|
|||
|
"back",
|
|||
|
"knowledge",
|
|||
|
"make",
|
|||
|
"discussion",
|
|||
|
"screw",
|
|||
|
"length",
|
|||
|
"accident",
|
|||
|
"battle",
|
|||
|
"dress",
|
|||
|
"knee",
|
|||
|
"log",
|
|||
|
"package",
|
|||
|
"it",
|
|||
|
"turn",
|
|||
|
"hearing",
|
|||
|
"newspaper",
|
|||
|
"layer",
|
|||
|
"wealth",
|
|||
|
"profile",
|
|||
|
"imagination",
|
|||
|
"answer",
|
|||
|
"weekend",
|
|||
|
"teacher",
|
|||
|
"appearance",
|
|||
|
"meet",
|
|||
|
"bike",
|
|||
|
"rise",
|
|||
|
"belt",
|
|||
|
"crash",
|
|||
|
"bowl",
|
|||
|
"equivalent",
|
|||
|
"support",
|
|||
|
"image",
|
|||
|
"poem",
|
|||
|
"risk",
|
|||
|
"excitement",
|
|||
|
"remote",
|
|||
|
"secretary",
|
|||
|
"public",
|
|||
|
"produce",
|
|||
|
"plane",
|
|||
|
"display",
|
|||
|
"money",
|
|||
|
"sand",
|
|||
|
"situation",
|
|||
|
"punch",
|
|||
|
"customer",
|
|||
|
"title",
|
|||
|
"shake",
|
|||
|
"mortgage",
|
|||
|
"option",
|
|||
|
"number",
|
|||
|
"pop",
|
|||
|
"window",
|
|||
|
"extent",
|
|||
|
"nothing",
|
|||
|
"experience",
|
|||
|
"opinion",
|
|||
|
"departure",
|
|||
|
"dance",
|
|||
|
"indication",
|
|||
|
"boy",
|
|||
|
"material",
|
|||
|
"band",
|
|||
|
"leader",
|
|||
|
"sun",
|
|||
|
"beautiful",
|
|||
|
"muscle",
|
|||
|
"farmer",
|
|||
|
"variety",
|
|||
|
"fat",
|
|||
|
"handle",
|
|||
|
"director",
|
|||
|
"opportunity",
|
|||
|
"calendar",
|
|||
|
"outside",
|
|||
|
"pace",
|
|||
|
"bath",
|
|||
|
"fish",
|
|||
|
"consequence",
|
|||
|
"put",
|
|||
|
"owner",
|
|||
|
"go",
|
|||
|
"doctor",
|
|||
|
"information",
|
|||
|
"share",
|
|||
|
"hurt",
|
|||
|
"protection",
|
|||
|
"career",
|
|||
|
"finance",
|
|||
|
"force",
|
|||
|
"golf",
|
|||
|
"garbage",
|
|||
|
"aspect",
|
|||
|
"kid",
|
|||
|
"food",
|
|||
|
"boot",
|
|||
|
"milk",
|
|||
|
"respond",
|
|||
|
"objective",
|
|||
|
"reality",
|
|||
|
"raw",
|
|||
|
"ring",
|
|||
|
"mall",
|
|||
|
"one",
|
|||
|
"impact",
|
|||
|
"area",
|
|||
|
"news",
|
|||
|
"international",
|
|||
|
"series",
|
|||
|
"impress",
|
|||
|
"mother",
|
|||
|
"shelter",
|
|||
|
"strike",
|
|||
|
"loan",
|
|||
|
"month",
|
|||
|
"seat",
|
|||
|
"anything",
|
|||
|
"entertainment",
|
|||
|
"familiar",
|
|||
|
"clue",
|
|||
|
"year",
|
|||
|
"glad",
|
|||
|
"supermarket",
|
|||
|
"natural",
|
|||
|
"god",
|
|||
|
"cost",
|
|||
|
"conversation",
|
|||
|
"tie",
|
|||
|
"ruin",
|
|||
|
"comfort",
|
|||
|
"earth",
|
|||
|
"storm",
|
|||
|
"percentage",
|
|||
|
"assistance",
|
|||
|
"budget",
|
|||
|
"strength",
|
|||
|
"beginning",
|
|||
|
"sleep",
|
|||
|
"other",
|
|||
|
"young",
|
|||
|
"unit",
|
|||
|
"fill",
|
|||
|
"store",
|
|||
|
"desire",
|
|||
|
"hide",
|
|||
|
"value",
|
|||
|
"cup",
|
|||
|
"maintenance",
|
|||
|
"nurse",
|
|||
|
"function",
|
|||
|
"tower",
|
|||
|
"role",
|
|||
|
"class",
|
|||
|
"camera",
|
|||
|
"database",
|
|||
|
"panic",
|
|||
|
"nation",
|
|||
|
"basket",
|
|||
|
"ice",
|
|||
|
"art",
|
|||
|
"spirit",
|
|||
|
"chart",
|
|||
|
"exchange",
|
|||
|
"feedback",
|
|||
|
"statement",
|
|||
|
"reputation",
|
|||
|
"search",
|
|||
|
"hunt",
|
|||
|
"exercise",
|
|||
|
"nasty",
|
|||
|
"notice",
|
|||
|
"male",
|
|||
|
"yard",
|
|||
|
"annual",
|
|||
|
"collar",
|
|||
|
"date",
|
|||
|
"platform",
|
|||
|
"plant",
|
|||
|
"fortune",
|
|||
|
"passion",
|
|||
|
"friendship",
|
|||
|
"spread",
|
|||
|
"cancer",
|
|||
|
"ticket",
|
|||
|
"attitude",
|
|||
|
"island",
|
|||
|
"active",
|
|||
|
"object",
|
|||
|
"service",
|
|||
|
"buyer",
|
|||
|
"bite",
|
|||
|
"card",
|
|||
|
"face",
|
|||
|
"steak",
|
|||
|
"proposal",
|
|||
|
"patient",
|
|||
|
"heat",
|
|||
|
"rule",
|
|||
|
"resident",
|
|||
|
"broad",
|
|||
|
"politics",
|
|||
|
"west",
|
|||
|
"knife",
|
|||
|
"expert",
|
|||
|
"girl",
|
|||
|
"design",
|
|||
|
"salt",
|
|||
|
"baseball",
|
|||
|
"grab",
|
|||
|
"inspection",
|
|||
|
"cousin",
|
|||
|
"couple",
|
|||
|
"magazine",
|
|||
|
"cook",
|
|||
|
"dependent",
|
|||
|
"security",
|
|||
|
"chicken",
|
|||
|
"version",
|
|||
|
"currency",
|
|||
|
"ladder",
|
|||
|
"scheme",
|
|||
|
"kitchen",
|
|||
|
"employment",
|
|||
|
"local",
|
|||
|
"attention",
|
|||
|
"manager",
|
|||
|
"fact",
|
|||
|
"cover",
|
|||
|
"sad",
|
|||
|
"guard",
|
|||
|
"relative",
|
|||
|
"county",
|
|||
|
"rate",
|
|||
|
"lunch",
|
|||
|
"program",
|
|||
|
"initiative",
|
|||
|
"gear",
|
|||
|
"bridge",
|
|||
|
"breast",
|
|||
|
"talk",
|
|||
|
"dish",
|
|||
|
"guarantee",
|
|||
|
"beer",
|
|||
|
"vehicle",
|
|||
|
"reception",
|
|||
|
"woman",
|
|||
|
"substance",
|
|||
|
"copy",
|
|||
|
"lecture",
|
|||
|
"advantage",
|
|||
|
"park",
|
|||
|
"cold",
|
|||
|
"death",
|
|||
|
"mix",
|
|||
|
"hold",
|
|||
|
"scale",
|
|||
|
"tomorrow",
|
|||
|
"blood",
|
|||
|
"request",
|
|||
|
"green",
|
|||
|
"cookie",
|
|||
|
"church",
|
|||
|
"strip",
|
|||
|
"forever",
|
|||
|
"beyond",
|
|||
|
"debt",
|
|||
|
"tackle",
|
|||
|
"wash",
|
|||
|
"following",
|
|||
|
"feel",
|
|||
|
"maximum",
|
|||
|
"sector",
|
|||
|
"sea",
|
|||
|
"property",
|
|||
|
"economics",
|
|||
|
"menu",
|
|||
|
"bench",
|
|||
|
"try",
|
|||
|
"language",
|
|||
|
"start",
|
|||
|
"call",
|
|||
|
"solid",
|
|||
|
"address",
|
|||
|
"income",
|
|||
|
"foot",
|
|||
|
"senior",
|
|||
|
"honey",
|
|||
|
"few",
|
|||
|
"mixture",
|
|||
|
"cash",
|
|||
|
"grocery",
|
|||
|
"link",
|
|||
|
"map",
|
|||
|
"form",
|
|||
|
"factor",
|
|||
|
"pot",
|
|||
|
"model",
|
|||
|
"writer",
|
|||
|
"farm",
|
|||
|
"winter",
|
|||
|
"skill",
|
|||
|
"anywhere",
|
|||
|
"birthday",
|
|||
|
"policy",
|
|||
|
"release",
|
|||
|
"husband",
|
|||
|
"lab",
|
|||
|
"hurry",
|
|||
|
"mail",
|
|||
|
"equipment",
|
|||
|
"sink",
|
|||
|
"pair",
|
|||
|
"driver",
|
|||
|
"consideration",
|
|||
|
"leather",
|
|||
|
"skin",
|
|||
|
"blue",
|
|||
|
"boat",
|
|||
|
"sale",
|
|||
|
"brick",
|
|||
|
"two",
|
|||
|
"feed",
|
|||
|
"square",
|
|||
|
"dot",
|
|||
|
"rush",
|
|||
|
"dream",
|
|||
|
"location",
|
|||
|
"afternoon",
|
|||
|
"manufacturer",
|
|||
|
"control",
|
|||
|
"occasion",
|
|||
|
"trouble",
|
|||
|
"introduction",
|
|||
|
"advice",
|
|||
|
"bet",
|
|||
|
"eat",
|
|||
|
"kill",
|
|||
|
"category",
|
|||
|
"manner",
|
|||
|
"office",
|
|||
|
"estate",
|
|||
|
"pride",
|
|||
|
"awareness",
|
|||
|
"slip",
|
|||
|
"crack",
|
|||
|
"client",
|
|||
|
"nail",
|
|||
|
"shoot",
|
|||
|
"membership",
|
|||
|
"soft",
|
|||
|
"anybody",
|
|||
|
"web",
|
|||
|
"official",
|
|||
|
"individual",
|
|||
|
"pizza",
|
|||
|
"interest",
|
|||
|
"bag",
|
|||
|
"spell",
|
|||
|
"profession",
|
|||
|
"queen",
|
|||
|
"deal",
|
|||
|
"resource",
|
|||
|
"ship",
|
|||
|
"guy",
|
|||
|
"chocolate",
|
|||
|
"joint",
|
|||
|
"formal",
|
|||
|
"upstairs",
|
|||
|
"car",
|
|||
|
"resort",
|
|||
|
"abroad",
|
|||
|
"dealer",
|
|||
|
"associate",
|
|||
|
"finger",
|
|||
|
"surgery",
|
|||
|
"comment",
|
|||
|
"team",
|
|||
|
"detail",
|
|||
|
"crazy",
|
|||
|
"path",
|
|||
|
"tale",
|
|||
|
"initial",
|
|||
|
"arm",
|
|||
|
"radio",
|
|||
|
"demand",
|
|||
|
"single",
|
|||
|
"draw",
|
|||
|
"yellow",
|
|||
|
"contest",
|
|||
|
"piece",
|
|||
|
"quote",
|
|||
|
"pull",
|
|||
|
"commercial",
|
|||
|
"shirt",
|
|||
|
"contribution",
|
|||
|
"cream",
|
|||
|
"channel",
|
|||
|
"suit",
|
|||
|
"discipline",
|
|||
|
"instruction",
|
|||
|
"concert",
|
|||
|
"speech",
|
|||
|
"low",
|
|||
|
"effective",
|
|||
|
"hang",
|
|||
|
"scratch",
|
|||
|
"industry",
|
|||
|
"breakfast",
|
|||
|
"lay",
|
|||
|
"join",
|
|||
|
"metal",
|
|||
|
"bedroom",
|
|||
|
"minute",
|
|||
|
"product",
|
|||
|
"rest",
|
|||
|
"temperature",
|
|||
|
"many",
|
|||
|
"give",
|
|||
|
"argument",
|
|||
|
"print",
|
|||
|
"purple",
|
|||
|
"laugh",
|
|||
|
"health",
|
|||
|
"credit",
|
|||
|
"investment",
|
|||
|
"sell",
|
|||
|
"setting",
|
|||
|
"lesson",
|
|||
|
"egg",
|
|||
|
"middle",
|
|||
|
"marriage",
|
|||
|
"level",
|
|||
|
"evidence",
|
|||
|
"phrase",
|
|||
|
"love",
|
|||
|
"self",
|
|||
|
"benefit",
|
|||
|
"guidance",
|
|||
|
"affect",
|
|||
|
"you",
|
|||
|
"dad",
|
|||
|
"anxiety",
|
|||
|
"special",
|
|||
|
"boyfriend",
|
|||
|
"test",
|
|||
|
"blank",
|
|||
|
"payment",
|
|||
|
"soup",
|
|||
|
"obligation",
|
|||
|
"reply",
|
|||
|
"smile",
|
|||
|
"deep",
|
|||
|
"complaint",
|
|||
|
"addition",
|
|||
|
"review",
|
|||
|
"box",
|
|||
|
"towel",
|
|||
|
"minor",
|
|||
|
"fun",
|
|||
|
"soil",
|
|||
|
"issue",
|
|||
|
"cigarette",
|
|||
|
"internet",
|
|||
|
"gain",
|
|||
|
"tell",
|
|||
|
"entry",
|
|||
|
"spare",
|
|||
|
"incident",
|
|||
|
"family",
|
|||
|
"refuse",
|
|||
|
"branch",
|
|||
|
"can",
|
|||
|
"pen",
|
|||
|
"grandfather",
|
|||
|
"constant",
|
|||
|
"tank",
|
|||
|
"uncle",
|
|||
|
"climate",
|
|||
|
"ground",
|
|||
|
"volume",
|
|||
|
"communication",
|
|||
|
"kind",
|
|||
|
"poet",
|
|||
|
"child",
|
|||
|
"screen",
|
|||
|
"mine",
|
|||
|
"quit",
|
|||
|
"gene",
|
|||
|
"lack",
|
|||
|
"charity",
|
|||
|
"memory",
|
|||
|
"tooth",
|
|||
|
"fear",
|
|||
|
"mention",
|
|||
|
"marketing",
|
|||
|
"reveal",
|
|||
|
"reason",
|
|||
|
"court",
|
|||
|
"season",
|
|||
|
"freedom",
|
|||
|
"land",
|
|||
|
"sport",
|
|||
|
"audience",
|
|||
|
"classroom",
|
|||
|
"law",
|
|||
|
"hook",
|
|||
|
"win",
|
|||
|
"carry",
|
|||
|
"eye",
|
|||
|
"smell",
|
|||
|
"distribution",
|
|||
|
"research",
|
|||
|
"country",
|
|||
|
"dare",
|
|||
|
"hope",
|
|||
|
"whereas",
|
|||
|
"stretch",
|
|||
|
"library",
|
|||
|
"if",
|
|||
|
"delay",
|
|||
|
"college",
|
|||
|
"plastic",
|
|||
|
"book",
|
|||
|
"present",
|
|||
|
"use",
|
|||
|
"worry",
|
|||
|
"champion",
|
|||
|
"goal",
|
|||
|
"economy",
|
|||
|
"march",
|
|||
|
"election",
|
|||
|
"reflection",
|
|||
|
"midnight",
|
|||
|
"slide",
|
|||
|
"inflation",
|
|||
|
"action",
|
|||
|
"challenge",
|
|||
|
"guitar",
|
|||
|
"coast",
|
|||
|
"apple",
|
|||
|
"campaign",
|
|||
|
"field",
|
|||
|
"jacket",
|
|||
|
"sense",
|
|||
|
"way",
|
|||
|
"visual",
|
|||
|
"remove",
|
|||
|
"weather",
|
|||
|
"trash",
|
|||
|
"cable",
|
|||
|
"regret",
|
|||
|
"buddy",
|
|||
|
"beach",
|
|||
|
"historian",
|
|||
|
"courage",
|
|||
|
"sympathy",
|
|||
|
"truck",
|
|||
|
"tension",
|
|||
|
"permit",
|
|||
|
"nose",
|
|||
|
"bed",
|
|||
|
"son",
|
|||
|
"person",
|
|||
|
"base",
|
|||
|
"meat",
|
|||
|
"usual",
|
|||
|
"air",
|
|||
|
"meeting",
|
|||
|
"worth",
|
|||
|
"game",
|
|||
|
"independence",
|
|||
|
"physical",
|
|||
|
"brief",
|
|||
|
"play",
|
|||
|
"raise",
|
|||
|
"board",
|
|||
|
"she",
|
|||
|
"key",
|
|||
|
"writing",
|
|||
|
"pick",
|
|||
|
"command",
|
|||
|
"party",
|
|||
|
"yesterday",
|
|||
|
"spring",
|
|||
|
"candidate",
|
|||
|
"physics",
|
|||
|
"university",
|
|||
|
"concern",
|
|||
|
"development",
|
|||
|
"change",
|
|||
|
"string",
|
|||
|
"target",
|
|||
|
"instance",
|
|||
|
"room",
|
|||
|
"bitter",
|
|||
|
"bird",
|
|||
|
"football",
|
|||
|
"normal",
|
|||
|
"split",
|
|||
|
"impression",
|
|||
|
"wood",
|
|||
|
"long",
|
|||
|
"meaning",
|
|||
|
"stock",
|
|||
|
"cap",
|
|||
|
"leadership",
|
|||
|
"media",
|
|||
|
"ambition",
|
|||
|
"fishing",
|
|||
|
"essay",
|
|||
|
"salad",
|
|||
|
"repair",
|
|||
|
"today",
|
|||
|
"designer",
|
|||
|
"night",
|
|||
|
"bank",
|
|||
|
"drawing",
|
|||
|
"inevitable",
|
|||
|
"phase",
|
|||
|
"vast",
|
|||
|
"chip",
|
|||
|
"anger",
|
|||
|
"switch",
|
|||
|
"cry",
|
|||
|
"twist",
|
|||
|
"personality",
|
|||
|
"attempt",
|
|||
|
"storage",
|
|||
|
"being",
|
|||
|
"preparation",
|
|||
|
"bat",
|
|||
|
"selection",
|
|||
|
"white",
|
|||
|
"technology",
|
|||
|
"contract",
|
|||
|
"side",
|
|||
|
"section",
|
|||
|
"station",
|
|||
|
"till",
|
|||
|
"structure",
|
|||
|
"tongue",
|
|||
|
"taste",
|
|||
|
"truth",
|
|||
|
"difficulty",
|
|||
|
"group",
|
|||
|
"limit",
|
|||
|
"main",
|
|||
|
"move",
|
|||
|
"feeling",
|
|||
|
"light",
|
|||
|
"example",
|
|||
|
"mission",
|
|||
|
"might",
|
|||
|
"wait",
|
|||
|
"wheel",
|
|||
|
"shop",
|
|||
|
"host",
|
|||
|
"classic",
|
|||
|
"alternative",
|
|||
|
"cause",
|
|||
|
"agent",
|
|||
|
"consist",
|
|||
|
"table",
|
|||
|
"airline",
|
|||
|
"text",
|
|||
|
"pool",
|
|||
|
"craft",
|
|||
|
"range",
|
|||
|
"fuel",
|
|||
|
"tool",
|
|||
|
"partner",
|
|||
|
"load",
|
|||
|
"entrance",
|
|||
|
"deposit",
|
|||
|
"hate",
|
|||
|
"article",
|
|||
|
"video",
|
|||
|
"summer",
|
|||
|
"feature",
|
|||
|
"extreme",
|
|||
|
"mobile",
|
|||
|
"hospital",
|
|||
|
"flight",
|
|||
|
"fall",
|
|||
|
"pension",
|
|||
|
"piano",
|
|||
|
"fail",
|
|||
|
"result",
|
|||
|
"rub",
|
|||
|
"gap",
|
|||
|
"system",
|
|||
|
"report",
|
|||
|
"suck",
|
|||
|
"ordinary",
|
|||
|
"wind",
|
|||
|
"nerve",
|
|||
|
"ask",
|
|||
|
"shine",
|
|||
|
"note",
|
|||
|
"line",
|
|||
|
"mom",
|
|||
|
"perception",
|
|||
|
"brother",
|
|||
|
"reference",
|
|||
|
"bend",
|
|||
|
"charge",
|
|||
|
"treat",
|
|||
|
"trick",
|
|||
|
"term",
|
|||
|
"homework",
|
|||
|
"bake",
|
|||
|
"bid",
|
|||
|
"status",
|
|||
|
"project",
|
|||
|
"strategy",
|
|||
|
"orange",
|
|||
|
"let",
|
|||
|
"enthusiasm",
|
|||
|
"parent",
|
|||
|
"concentrate",
|
|||
|
"device",
|
|||
|
"travel",
|
|||
|
"poetry",
|
|||
|
"business",
|
|||
|
"society",
|
|||
|
"kiss",
|
|||
|
"end",
|
|||
|
"vegetable",
|
|||
|
"employ",
|
|||
|
"schedule",
|
|||
|
"hour",
|
|||
|
"brave",
|
|||
|
"focus",
|
|||
|
"process",
|
|||
|
"movie",
|
|||
|
"illegal",
|
|||
|
"general",
|
|||
|
"coffee",
|
|||
|
"ad",
|
|||
|
"highway",
|
|||
|
"chemistry",
|
|||
|
"psychology",
|
|||
|
"hire",
|
|||
|
"bell",
|
|||
|
"conference",
|
|||
|
"relief",
|
|||
|
"show",
|
|||
|
"neat",
|
|||
|
"funny",
|
|||
|
"weight",
|
|||
|
"quality",
|
|||
|
"club",
|
|||
|
"daughter",
|
|||
|
"zone",
|
|||
|
"touch",
|
|||
|
"tonight",
|
|||
|
"shock",
|
|||
|
"burn",
|
|||
|
"excuse",
|
|||
|
"name",
|
|||
|
"survey",
|
|||
|
"landscape",
|
|||
|
"advance",
|
|||
|
"satisfaction",
|
|||
|
"bread",
|
|||
|
"disaster",
|
|||
|
"item",
|
|||
|
"hat",
|
|||
|
"prior",
|
|||
|
"shopping",
|
|||
|
"visit",
|
|||
|
"east",
|
|||
|
"photo",
|
|||
|
"home",
|
|||
|
"idea",
|
|||
|
"father",
|
|||
|
"comparison",
|
|||
|
"cat",
|
|||
|
"pipe",
|
|||
|
"winner",
|
|||
|
"count",
|
|||
|
"lake",
|
|||
|
"fight",
|
|||
|
"prize",
|
|||
|
"foundation",
|
|||
|
"dog",
|
|||
|
"keep",
|
|||
|
"ideal",
|
|||
|
"fan",
|
|||
|
"struggle",
|
|||
|
"peak",
|
|||
|
"safety",
|
|||
|
"solution",
|
|||
|
"hell",
|
|||
|
"conclusion",
|
|||
|
"population",
|
|||
|
"strain",
|
|||
|
"alarm",
|
|||
|
"measurement",
|
|||
|
"second",
|
|||
|
"train",
|
|||
|
"race",
|
|||
|
"due",
|
|||
|
"insurance",
|
|||
|
"boss",
|
|||
|
"tree",
|
|||
|
"monitor",
|
|||
|
"sick",
|
|||
|
"course",
|
|||
|
"drag",
|
|||
|
"appointment",
|
|||
|
"slice",
|
|||
|
"still",
|
|||
|
"care",
|
|||
|
"patience",
|
|||
|
"rich",
|
|||
|
"escape",
|
|||
|
"emotion",
|
|||
|
"royal",
|
|||
|
"female",
|
|||
|
"childhood",
|
|||
|
"government",
|
|||
|
"picture",
|
|||
|
"will",
|
|||
|
"sock",
|
|||
|
"big",
|
|||
|
"gate",
|
|||
|
"oil",
|
|||
|
"cross",
|
|||
|
"pin",
|
|||
|
"improvement",
|
|||
|
"championship",
|
|||
|
"silly",
|
|||
|
"help",
|
|||
|
"sky",
|
|||
|
"pitch",
|
|||
|
"man",
|
|||
|
"diamond",
|
|||
|
"most",
|
|||
|
"transition",
|
|||
|
"work",
|
|||
|
"science",
|
|||
|
"committee",
|
|||
|
"moment",
|
|||
|
"fix",
|
|||
|
"teaching",
|
|||
|
"dig",
|
|||
|
"specialist",
|
|||
|
"complex",
|
|||
|
"guide",
|
|||
|
"people",
|
|||
|
"dead",
|
|||
|
"voice",
|
|||
|
"original",
|
|||
|
"break",
|
|||
|
"topic",
|
|||
|
"data",
|
|||
|
"degree",
|
|||
|
"reading",
|
|||
|
"recording",
|
|||
|
"bunch",
|
|||
|
"reach",
|
|||
|
"judgment",
|
|||
|
"lie",
|
|||
|
"regular",
|
|||
|
"set",
|
|||
|
"painting",
|
|||
|
"mode",
|
|||
|
"list",
|
|||
|
"player",
|
|||
|
"bear",
|
|||
|
"north",
|
|||
|
"wonder",
|
|||
|
"carpet",
|
|||
|
"heavy",
|
|||
|
"officer",
|
|||
|
"negative",
|
|||
|
"clock",
|
|||
|
"unique",
|
|||
|
"baby",
|
|||
|
"pain",
|
|||
|
"assumption",
|
|||
|
"disk",
|
|||
|
"iron",
|
|||
|
"bill",
|
|||
|
"drawer",
|
|||
|
"look",
|
|||
|
"double",
|
|||
|
"mistake",
|
|||
|
"finish",
|
|||
|
"future",
|
|||
|
"brilliant",
|
|||
|
"contact",
|
|||
|
"math",
|
|||
|
"rice",
|
|||
|
"leave",
|
|||
|
"restaurant",
|
|||
|
"discount",
|
|||
|
"sex",
|
|||
|
"virus",
|
|||
|
"bit",
|
|||
|
"trust",
|
|||
|
"event",
|
|||
|
"wear",
|
|||
|
"juice",
|
|||
|
"failure",
|
|||
|
"bug",
|
|||
|
"context",
|
|||
|
"mud",
|
|||
|
"whole",
|
|||
|
"wrap",
|
|||
|
"intention",
|
|||
|
"draft",
|
|||
|
"pressure",
|
|||
|
"cake",
|
|||
|
"dark",
|
|||
|
"explanation",
|
|||
|
"space",
|
|||
|
"angle",
|
|||
|
"word",
|
|||
|
"efficiency",
|
|||
|
"management",
|
|||
|
"habit",
|
|||
|
"star",
|
|||
|
"chance",
|
|||
|
"finding",
|
|||
|
"transportation",
|
|||
|
"stand",
|
|||
|
"criticism",
|
|||
|
"flow",
|
|||
|
"door",
|
|||
|
"injury",
|
|||
|
"insect",
|
|||
|
"surprise",
|
|||
|
"apartment",
|
|||
|
] # pylint: disable=line-too-long
|
|||
|
|
|||
|
# ISO 639-1 codes to language names.
|
|||
|
LANGUAGE_CODES = immutabledict.immutabledict(
|
|||
|
{
|
|||
|
"en": "English",
|
|||
|
"es": "Spanish",
|
|||
|
"pt": "Portuguese",
|
|||
|
"ar": "Arabic",
|
|||
|
"hi": "Hindi",
|
|||
|
"fr": "French",
|
|||
|
"ru": "Russian",
|
|||
|
"de": "German",
|
|||
|
"ja": "japanese",
|
|||
|
"it": "Italian",
|
|||
|
"bn": "Bengali",
|
|||
|
"uk": "Ukrainian",
|
|||
|
"th": "Thai",
|
|||
|
"ur": "Urdu",
|
|||
|
"ta": "Tamil",
|
|||
|
"te": "Telugu",
|
|||
|
"bg": "Bulgarian",
|
|||
|
"ko": "Korean",
|
|||
|
"pl": "Polish",
|
|||
|
"he": "Hebrew",
|
|||
|
"fa": "Persian",
|
|||
|
"vi": "Vietnamese",
|
|||
|
"ne": "Nepali",
|
|||
|
"sw": "Swahili",
|
|||
|
"kn": "Kannada",
|
|||
|
"mr": "Marathi",
|
|||
|
"gu": "Gujarati",
|
|||
|
"pa": "Punjabi",
|
|||
|
"ml": "Malayalam",
|
|||
|
"fi": "Finnish",
|
|||
|
}
|
|||
|
)
|
|||
|
|
|||
|
_ALPHABETS = "([A-Za-z])"
|
|||
|
_PREFIXES = "(Mr|St|Mrs|Ms|Dr)[.]"
|
|||
|
_SUFFIXES = "(Inc|Ltd|Jr|Sr|Co)"
|
|||
|
_STARTERS = r"(Mr|Mrs|Ms|Dr|Prof|Capt|Cpt|Lt|He\s|She\s|It\s|They\s|Their\s|Our\s|We\s|But\s|However\s|That\s|This\s|Wherever)"
|
|||
|
_ACRONYMS = "([A-Z][.][A-Z][.](?:[A-Z][.])?)"
|
|||
|
_WEBSITES = "[.](com|net|org|io|gov|edu|me)"
|
|||
|
_DIGITS = "([0-9])"
|
|||
|
_MULTIPLE_DOTS = r"\.{2,}"
|
|||
|
|
|||
|
|
|||
|
def split_into_sentences(text):
|
|||
|
"""Split the text into sentences.
|
|||
|
|
|||
|
Args:
|
|||
|
text: A string that consists of more than or equal to one sentences.
|
|||
|
|
|||
|
Returns:
|
|||
|
A list of strings where each string is a sentence.
|
|||
|
"""
|
|||
|
text = " " + text + " "
|
|||
|
text = text.replace("\n", " ")
|
|||
|
text = re.sub(_PREFIXES, "\\1<prd>", text)
|
|||
|
text = re.sub(_WEBSITES, "<prd>\\1", text)
|
|||
|
text = re.sub(_DIGITS + "[.]" + _DIGITS, "\\1<prd>\\2", text)
|
|||
|
text = re.sub(
|
|||
|
_MULTIPLE_DOTS,
|
|||
|
lambda match: "<prd>" * len(match.group(0)) + "<stop>",
|
|||
|
text,
|
|||
|
)
|
|||
|
if "Ph.D" in text:
|
|||
|
text = text.replace("Ph.D.", "Ph<prd>D<prd>")
|
|||
|
text = re.sub(r"\s" + _ALPHABETS + "[.] ", " \\1<prd> ", text)
|
|||
|
text = re.sub(_ACRONYMS + " " + _STARTERS, "\\1<stop> \\2", text)
|
|||
|
text = re.sub(
|
|||
|
_ALPHABETS + "[.]" + _ALPHABETS + "[.]" + _ALPHABETS + "[.]",
|
|||
|
"\\1<prd>\\2<prd>\\3<prd>",
|
|||
|
text,
|
|||
|
)
|
|||
|
text = re.sub(_ALPHABETS + "[.]" + _ALPHABETS + "[.]", "\\1<prd>\\2<prd>", text)
|
|||
|
text = re.sub(" " + _SUFFIXES + "[.] " + _STARTERS, " \\1<stop> \\2", text)
|
|||
|
text = re.sub(" " + _SUFFIXES + "[.]", " \\1<prd>", text)
|
|||
|
text = re.sub(" " + _ALPHABETS + "[.]", " \\1<prd>", text)
|
|||
|
if "”" in text:
|
|||
|
text = text.replace(".”", "”.")
|
|||
|
if '"' in text:
|
|||
|
text = text.replace('."', '".')
|
|||
|
if "!" in text:
|
|||
|
text = text.replace('!"', '"!')
|
|||
|
if "?" in text:
|
|||
|
text = text.replace('?"', '"?')
|
|||
|
text = text.replace(".", ".<stop>")
|
|||
|
text = text.replace("?", "?<stop>")
|
|||
|
text = text.replace("!", "!<stop>")
|
|||
|
text = text.replace("<prd>", ".")
|
|||
|
sentences = text.split("<stop>")
|
|||
|
sentences = [s.strip() for s in sentences]
|
|||
|
if sentences and not sentences[-1]:
|
|||
|
sentences = sentences[:-1]
|
|||
|
return sentences
|
|||
|
|
|||
|
|
|||
|
def count_words(text):
|
|||
|
"""Counts the number of words."""
|
|||
|
tokenizer = nltk.tokenize.RegexpTokenizer(r"\w+")
|
|||
|
tokens = tokenizer.tokenize(text)
|
|||
|
num_words = len(tokens)
|
|||
|
return num_words
|
|||
|
|
|||
|
def count_chinese_words(text):
|
|||
|
from sacrebleu.tokenizers.tokenizer_zh import TokenizerZh
|
|||
|
tokenizer = TokenizerZh()
|
|||
|
return len(tokenizer(text.strip()).split())
|
|||
|
|
|||
|
def count_japanese_words(text):
|
|||
|
from sacrebleu.tokenizers.tokenizer_ja_mecab import TokenizerJaMecab
|
|||
|
tokenizer = TokenizerJaMecab()
|
|||
|
return len(tokenizer(text.strip()).split())
|
|||
|
|
|||
|
def count_korean_words(text):
|
|||
|
from sacrebleu.tokenizers.tokenizer_ko_mecab import TokenizerKoMecab
|
|||
|
tokenizer = TokenizerKoMecab()
|
|||
|
return len(tokenizer(text.strip()).split())
|
|||
|
|
|||
|
def count_words_by_space(text):
|
|||
|
return len(text.strip().split())
|
|||
|
|
|||
|
def count_words_by_spm(text):
|
|||
|
from sacrebleu.tokenizers.tokenizer_spm import Flores101Tokenizer
|
|||
|
tokenizer = Flores101Tokenizer()
|
|||
|
return len(tokenizer(text.strip()).split())
|
|||
|
|
|||
|
|
|||
|
@functools.lru_cache(maxsize=None)
|
|||
|
def _get_sentence_tokenizer():
|
|||
|
return nltk.data.load("nltk:tokenizers/punkt/english.pickle")
|
|||
|
|
|||
|
|
|||
|
def count_sentences(text):
|
|||
|
"""Count the number of sentences."""
|
|||
|
tokenizer = _get_sentence_tokenizer()
|
|||
|
tokenized_sentences = tokenizer.tokenize(text)
|
|||
|
return len(tokenized_sentences)
|
|||
|
|
|||
|
def count_chinese_sentences(text):
|
|||
|
text = re.sub(r"([。!!?\?]|\.{6}|……)\s*([^”’\"」\s])", r"\1\n\2", text)
|
|||
|
text = re.sub(r"(([。!!?\?]|\.{6}|……)\s*[”’\"」])\s*([^,,。!!?\?\s])", r"\1\n\3", text)
|
|||
|
return len(text.strip().split("\n"))
|
|||
|
|
|||
|
def count_thai_sentences(text):
|
|||
|
from pythainlp import sent_tokenize
|
|||
|
return len(sent_tokenize(text))
|
|||
|
|
|||
|
def count_bengali_sentences(text):
|
|||
|
text = re.sub(r"([!\?।]|\.{6})\s*([^”’\"\s])", r"\1\n\2", text)
|
|||
|
text = re.sub(r"(([!\?।]|\.{6})\s*[”’\"])\s*([^,!\?।\s])", r"\1\n\3", text)
|
|||
|
return len(text.strip().split("\n"))
|
|||
|
|
|||
|
def count_korean_sentences(text):
|
|||
|
import kss
|
|||
|
return len(kss.split_sentences(text))
|
|||
|
|
|||
|
|
|||
|
def generate_keywords(num_keywords):
|
|||
|
"""Randomly generates a few keywords."""
|
|||
|
return random.sample(WORD_LIST, k=num_keywords)
|