TextCases[text,form]
gives a list of all cases of text identified as being of type form that appear in text.
TextCases[text,{form1,form2,…}]
gives an association of results for all the types formi.
TextCases[text,formspecprop]
gives the specified property for each result found.
TextCases[text,formspec{prop1,prop2,…}]
gives a list of properties for each result found.
TextCases[text,spec,n]
gives the first n cases found.
TextCases
Listing of Text Content Types »TextCases[text,form]
gives a list of all cases of text identified as being of type form that appear in text.
TextCases[text,{form1,form2,…}]
gives an association of results for all the types formi.
TextCases[text,formspecprop]
gives the specified property for each result found.
TextCases[text,formspec{prop1,prop2,…}]
gives a list of properties for each result found.
TextCases[text,spec,n]
gives the first n cases found.
Details and Options
- TextCases is used to perform several natural language processing tasks such as part-of-speech tagging or named entity recognition.
- In TextCases[text,…], text can be a string, a file with plain text represented by File[…], a ContentObject expression or a list of these text objects.
- TextCases[{text1,text2,…},…] gives cases for each texti.
- Identification type form can be:
-
"type" any text content type (e.g. "Noun", "City") Entity[…,…] a specific entity of a text content type form1|form2|… form matching any of the formi Containing[outer,inner] forms of type outer containing type inner Verbatim["string"] a specific string to be matched exactly pattern a string pattern to be matched - Possible choices for the property prop are:
-
"String" string of the identified text (default) "Position" start and end position of the string in text "Probability" estimated probability that the identification is correct "Interpretation" standard interpretation of the identified string "Snippet" a snippet around the identified string "HighlightedSnippet" a snippet with the identified string highlighted f apply f to the association containing all properties {prop1,prop2,…} a list of property specifications - The following options can be given:
-
AcceptanceThreshold Automatic minimum probability to accept identification PerformanceGoal Automatic favor algorithms with specific advantages TargetDevice "CPU" whether CPU or GPU computation should be used for entity detection VerifyInterpretation False whether interpretability should be verified - TextCases uses machine learning. Its methods, training sets and biases included therein may change and yield varied results in different versions of the Wolfram Language.
- TextCases may download resources that will be stored in your local object store at $LocalBase and can be listed using LocalObjects[] and removed using ResourceRemove.
Examples
open all close allBasic Examples (6)
TextCases["NYC, Los Angeles, and Chicago are the largest cities in the United States of America in 2018.", "City"]TextCases["The quick brown fox jumps over the lazy dog.", "Noun"]Find currency amounts and get interpretations:
TextCases["The shirt cost $50 in America, but only 5€ in Italy.", "CurrencyAmount" -> "Interpretation"]Find cities, countries and dates in text:
TextCases["NYC, Los Angeles, and Chicago are the largest cities in the United States of America in 2018.", {"City", "Country", "Date"}]Obtain probabilities and interpretations:
TextCases["NYC, Los Angeles, and Chicago are the largest cities in the USA in 2018.", {"City", "Country", "Date"} -> {"String", "Interpretation", "Probability"}]Find all the locations and get their positions:
TextCases["NYC, Los Angeles, and Chicago are the largest cities in the USA in 2018.", "Location" -> (#String -> #Interpretation&)]Find all references to New York City in a text:
TextCases["I love New York - I ❤ NYC", Entity["City", {"NewYork", "NewYork", "UnitedStates"}]]Scope (5)
ContentObject and Files (2)
Find instances of colors in a ContentObject:
doc = TextSearch["ExampleData/Text", "dog"][1]TextCases[doc, "Color"]Find quantities in a File:
file = TextSearch["ExampleData/Text", "dog"][1, "Location"]TextCases[file, "Color"]Alternatives and Containing (2)
Use Alternatives to match multiple types:
TextCases["John and Mary went to the store.", "Noun" | "Verb"]TextCases["John and Mary went to the store.", "Noun" | "ProperNoun" | "Verb"]Find all sentences in a string that contain currency amounts:
TextCases["I have a fairly clear idea of what I will buy at the store. I want shoes, a computer, and a jacket. The computer will be the most expensive, and will cost over $1000.", Containing["Sentence", "CurrencyAmount"]]Find all sentences in a string that contain countries:
TextCases["On vacation, I first went to France, then I went to Belgium. The food was amazing in both countries.", Containing["Sentence", "Country"]]Combine Alternatives and Containing to form highly structured queries:
TextCases["I have a fairly clear idea of what I will buy at the store. I want shoes, a computer, and a jacket. The computer will be the most expensive, and will cost over $1000. John will like my computer.", Containing["Sentence", "CurrencyAmount" | "ProperNoun"]]Return Types (1)
Specify multiple return types:
TextCases["He spent $50 in Boston on the 11th July. For a shirt that costs 5€ in Rome!", "CurrencyAmount" -> {"String", "Position", "Interpretation"}]TextCases["He spent $50 in Boston on the 11th July. For a shirt that costs 5€ in Rome!", {"CurrencyAmount", "City", "Date"} -> {"String", "Position", "Interpretation"}]Show all the available properties in an Association:
TextCases["He spent $50 in Boston on the 11th July. For a shirt that costs 5€ in Rome!", "Date" -> Identity]Create a dataset with the properties of several types of entities:
TextCases["He spent $50 in Boston on the 11th July. For a shirt that costs 5€ in Rome!", {"CurrencyAmount", "City", "Date"} -> Identity]//DatasetGet the geodetic positions of the locations occurring in a text:
TextCases["She took a plane from Toulouse in France to Montreal in Canada", "Location" -> (#String -> #Interpretation&)]Options (3)
AcceptanceThreshold (1)
By default, all the detected entities have an estimated probability higher than 0.5:
TextCases[ExampleData[{"Text", "JFKInaugural"}], {"Country", "Date", "Person"}]Get only the entities that are highly probable to be correct by setting a high AcceptanceThreshold:
TextCases[ExampleData[{"Text", "JFKInaugural"}], {"Country", "Date", "Person"}, "AcceptanceThreshold" -> 0.9]PerformanceGoal (1)
Using PerformanceGoal->"Speed" can help to have faster detection, at the cost of lower accuracy:
AbsoluteTiming@TextCases["My favourite cities are New York and Foix", "City"]AbsoluteTiming@TextCases["My favourite cities are New York and Foix", "City", PerformanceGoal -> "Speed"]VerifyInterpretation (1)
By default, some entities cannot be interpreted, either because they are not correct or because they are not yet in the knowledgebase. In these cases, a string is returned instead of an interpretation:
TextCases["We visited Toulouse and Foix in France.", {"City", "Country"} -> "Interpretation"]Use VerifyInterpretation to filter out the entities that cannot be interpreted:
TextCases["We visited Toulouse and Foix in Midi-Pyrénées in France.", {"City", "Country"} -> "Interpretation", VerifyInterpretation -> True]Applications (6)
Word and Sentence Segmentation (2)
Word segmentation preserves syntactic elements such as email addresses, URLs, and Twitter handles:
TextCases["His email address is user@domain.com and Twitter handle is @username.", "Word"]TextCases["http://www.wolfram.com is a useful resource for Wolfram Language programmers.", "Word"]//TextElementAll the non-whitespace characters are grabbed with forms "Word" and "Punctuation":
TextCases["Washington D.C. is the capital of the United States. Mr. Anthony A. Williams was the mayor.", "Word" | "Punctuation"]//TextElementSentence segmentation intelligently ignores acronyms and other misleading boundaries:
TextCases["Washington D.C. is the capital of the United States. Mr. Fox is the CEO of the company. She co-founded the company with Mrs. Smith.", "Sentence"]//TextElementParts of Speech (2)
Return all words of a given part of speech:
TextCases["John and Mary went to the new store.", "Noun"]TextCases["John and Mary went to the new store.", "Verb"]TextCases["John and Mary went to the new store.", "Preposition"]Make a table of word clouds from parts of speech:
alice = ExampleData[{"Text", "AliceInWonderland"}];partsOfSpeech = TextCases[alice, {"Noun", "Verb", "Adjective", "Adverb"}];Grid @Partition[KeyValueMap[Labeled[WordCloud[#2, ImageSize -> 200], #1]&, partsOfSpeech], 2]Entities and Interpretable Objects (2)
TextCases["On vacation, I first went to France, then I went to Belgium.", "Country"]Return interpreted strings as Entity objects:
TextCases["On vacation, I first went to France, then I went to Belgium.", "Country" -> "Interpretation"]Find currency amounts in a Wikipedia article:
dollarstore = WikipediaData@First@WikipediaSearch["Variety Store"];currencies = TextCases[dollarstore, "CurrencyAmount" -> "Interpretation"]CurrencyConvert[currencies, "Yen"]Properties & Relations (4)
TextCases handles the same types as TextPosition and TextContents and always identifies the same substrings as these functions for a given type:
TextContents["Boston, Worcester, and Springfield are the largest cities in Massachusetts.", "City"]TextCases["Boston, Worcester, and Springfield are the largest cities in Massachusetts.", "City"]TextPosition["Boston, Worcester, and Springfield are the largest cities in Massachusetts.", "City"]TextCases is a generalization of TextPosition:
TextCases["Boston, Worcester, and Springfield are the largest cities in Massachusetts.", "City" -> "Position"]TextPosition["Boston, Worcester, and Springfield are the largest cities in Massachusetts.", {"City", "AdministrativeDivision"}]TextCases["Boston, Worcester, and Springfield are the largest cities in Massachusetts.", {"City", "AdministrativeDivision"} -> "Position"]A dataset that is similar to the output of TextContents can be obtained using TextCases:
Dataset@TextCases["Boston, Worcester, and Springfield are the largest cities in Massachusetts.", "City" -> Identity]Dataset@TextCases["Boston, Worcester, and Springfield are the largest cities in Massachusetts.", "City" -> Function[<|"City" -> Last[#Interpretation][[1]], "State" -> Last[#Interpretation][[2]], "Country" -> Last[#Interpretation][[3]], "Position" -> #Position, "HighlightedSnippet" -> #HighlightedSnippet|>]]TextSentences is equivalent to TextCases[…,"Sentence"]:
TextCases["Hi Michael J. Jordan. I am Michael I. Jordan.", "Sentence"]//TextElementTextSentences["Hi Michael J. Jordan. I am Michael I. Jordan."]//TextElementTextStructure splits texts into the same sentences:
TextStructure["Hi Michael J. Jordan. I am Michael I. Jordan.", "PartsOfSpeech"]TextWords is equivalent to TextCases[…,"Word"]:
TextCases["As a matter-of-fact, my mother-in-law is in N.Y.C.", "Word"]//TextElementTextWords["As a matter-of-fact, my mother-in-law is in N.Y.C."]//TextElementTextStructure splits texts into the same words and punctuation marks as TextCases[…,"Word"|"Punctuation"]:
TextCases["As a matter-of-fact, my mother-in-law is in N.Y.C.", "Word" | "Punctuation"]//TextElementTextStructure["As a matter-of-fact, my mother-in-law is in New York.", "PartsOfSpeech"]Neat Examples (2)
Many entities (cities, countries, etc.) can be located on a map. TextCases allows you to find all these entities at once.
Take the Wikipedia article about rice:
text = WikipediaData["Rice"];Snippet[text, 4]Find all entities that can be pinpointed to a location:
locations = TextCases[text, "LocationEntity" -> "Interpretation", VerifyInterpretation -> True];RandomSample[locations, 10]Visualize the locations identified and their frequency in the text:
GeoBubbleChart[Counts[locations]]Show the number of mentions of each continent and country:
ReverseSort@Counts[Cases[locations, Entity["GeographicRegion", _]]]ReverseSort@Counts[Cases[locations, Entity["Country", _]]]Take the Wikipedia article about world wars:
text = WikipediaData["World War"];Snippet[text, 4]Find all sentences containing dates and extract their corresponding DateObject interpretations:
sentences = TextCases[text, "Date" -> {"HighlightedSnippet", "Interpretation"}, VerifyInterpretation -> True];RandomSample[sentences, 3]Display these dates on a timeline:
TimelinePlot[sentences[[All, 2]]]Display the extracted sentences on a timeline:
TimelinePlot[Association[Rule@@@sentences], Sequence[PlotRange -> {"1900", "1950"}, PlotLayout -> "Vertical", Background -> LightBlue]]Related Guides
Text
Wolfram Research (2015), TextCases, Wolfram Language function, https://reference.wolfram.com/language/ref/TextCases.html (updated 2019).
CMS
Wolfram Language. 2015. "TextCases." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2019. https://reference.wolfram.com/language/ref/TextCases.html.
APA
Wolfram Language. (2015). TextCases. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/TextCases.html
BibTeX
@misc{reference.wolfram_2026_textcases, author="Wolfram Research", title="{TextCases}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/TextCases.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_textcases, organization={Wolfram Research}, title={TextCases}, year={2019}, url={https://reference.wolfram.com/language/ref/TextCases.html}, note=[Accessed: 13-June-2026]}