
Product
Introducing Reports: An Extensible Reporting Framework for Socket Data
Explore exportable charts for vulnerabilities, dependencies, and usage with Reports, Socket’s new extensible reporting framework.
sentence-counter
Advanced tools
A multilingual sentence counter that supports language detection, sentence splitting, and word counting for multiple languages including English, Chinese, Spanish, French, German, and Japanese
A multilingual sentence counter that supports language detection, sentence splitting, and word counting for multiple languages including English, Chinese, Spanish, French, German, and Japanese.
Try our online sentence counter for instant text analysis. The web version provides:
npm install sentence-counter
import { analyzeText, detectLanguage, splitSentences, countWords, countSentences } from 'sentence-counter'
// Analyze text with comprehensive statistics
const text = "Hello! How are you? I'm fine. 你好!最近怎么样?我很好。"
const stats = await analyzeText(text)
console.log(stats)
// {
// language: 'en',
// sentenceCount: 6,
// wordCount: 12,
// sentences: ['Hello!', 'How are you?', "I'm fine.", '你好!', '最近怎么样?', '我很好。'],
// words: ['Hello', 'How', 'are', 'you', "I'm", 'fine', '你好', '最近', '怎么样', '我', '很', '好']
// }
// Detect language
const lang = await detectLanguage(text)
console.log(lang) // 'en' or 'zh' depending on which language has more characters
// Split text into sentences
const sentences = splitSentences(text)
console.log(sentences)
// ['Hello!', 'How are you?', "I'm fine.", '你好!', '最近怎么样?', '我很好。']
// Count words
const words = await countWords(text)
console.log(words)
// ['Hello', 'How', 'are', 'you', "I'm", 'fine', '你好', '最近', '怎么样', '我', '很', '好']
// Count sentences
const count = countSentences(text)
console.log(count) // 6
The package supports the following languages:
en)zh)es)fr)de)ja)detectLanguage(text: string): Promise<SupportedLanguage>Detects the primary language of the given text based on character frequency and patterns.
splitSentences(text: string): string[]Splits text into sentences based on language-specific and universal rules.
countWords(text: string): Promise<string[]>Counts words in text based on language-specific and universal rules.
countSentences(text: string): numberCounts the number of sentences in the given text.
analyzeText(text: string): Promise<TextAnalysis>Analyzes text and returns comprehensive statistics including:
type SupportedLanguage = 'en' | 'zh' | 'es' | 'fr' | 'de' | 'ja'
interface TextAnalysis {
language: SupportedLanguage
sentenceCount: number
wordCount: number
sentences: string[]
words: string[]
}
Contributions are welcome! Please feel free to submit a Pull Request.
MIT © smthokay929
FAQs
A multilingual sentence counter that supports language detection, sentence splitting, and word counting for multiple languages including English, Chinese, Spanish, French, German, and Japanese
We found that sentence-counter demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Explore exportable charts for vulnerabilities, dependencies, and usage with Reports, Socket’s new extensible reporting framework.

Product
Socket for Jira lets teams turn alerts into Jira tickets with manual creation, automated ticketing rules, and two-way sync.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.