{"id":665739,"date":"2020-07-20T09:38:42","date_gmt":"2020-07-20T16:38:42","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/research\/?post_type=msr-project&#038;p=665739"},"modified":"2022-04-19T15:08:04","modified_gmt":"2022-04-19T22:08:04","slug":"prose-text-extraction","status":"publish","type":"msr-project","link":"https:\/\/www.microsoft.com\/en-us\/research\/project\/prose-text-extraction\/","title":{"rendered":"PROSE &#8211; Text Extraction (FlashExtract)"},"content":{"rendered":"<p><strong>FlashExtract<\/strong> extracts data from semi-structured text files using <em>examples<\/em>.\u00a0It has been shipped to <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/powerbi.microsoft.com\/en-us\/blog\/power-bi-desktop-august-2020-feature-summary\/#_text_csv\" target=\"_blank\" rel=\"noopener noreferrer\">Power Query<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/docs.microsoft.com\/en-us\/powershell\/module\/microsoft.powershell.utility\/convertfrom-string?view=powershell-5.1\" target=\"_blank\" rel=\"noopener noreferrer\">PowerShell<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, and <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/azure-monitor\/platform\/custom-fields\" target=\"_blank\" rel=\"noopener noreferrer\">Azure Monitor<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>.<\/p>\n<div class=\"yt-consent-placeholder\" role=\"region\" aria-label=\"Video playback requires cookie consent\" data-video-id=\"ar4rN0wciiQ\" data-poster=\"https:\/\/img.youtube.com\/vi\/ar4rN0wciiQ\/maxresdefault.jpg\"><iframe aria-hidden=\"true\" tabindex=\"-1\" title=\"Power BI Import Text Using Examples\" width=\"500\" height=\"375\" data-src=\"https:\/\/www.youtube-nocookie.com\/embed\/ar4rN0wciiQ?feature=oembed&rel=0&enablejsapi=1\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<div class=\"yt-consent-placeholder__overlay\"><button class=\"yt-consent-placeholder__play\"><svg width=\"42\" height=\"42\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><g fill=\"none\" fill-rule=\"evenodd\"><circle fill=\"#000\" opacity=\".556\" cx=\"21\" cy=\"21\" r=\"21\"\/><path stroke=\"#FFF\" d=\"M27.5 22l-12 8.5v-17z\"\/><\/g><\/svg><span class=\"yt-consent-placeholder__label\">Video playback requires cookie consent<\/span><\/button><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Extraction.Text extracts data from semi-structured text files using examples. <\/p>\n","protected":false},"featured_media":0,"template":"","meta":{"msr-url-field":"","msr-podcast-episode":"","msrModifiedDate":"","msrModifiedDateEnabled":false,"ep_exclude_from_search":false,"_classifai_error":"","footnotes":""},"research-area":[13556,13554,13560],"msr-locale":[268875],"msr-impact-theme":[],"msr-pillar":[],"class_list":["post-665739","msr-project","type-msr-project","status-publish","hentry","msr-research-area-artificial-intelligence","msr-research-area-human-computer-interaction","msr-research-area-programming-languages-software-engineering","msr-locale-en_us","msr-archive-status-active"],"msr_project_start":"2014-06-01","related-publications":[335339,453858,702169],"related-downloads":[],"related-videos":[],"related-groups":[663303],"related-events":[],"related-opportunities":[],"related-posts":[],"related-articles":[],"tab-content":[{"id":0,"name":"Power Query","content":"Power Query's\u00a0<a href=\"https:\/\/powerbi.microsoft.com\/en-us\/blog\/power-bi-desktop-august-2020-feature-summary\/#_text_csv\" target=\"_blank\" rel=\"noopener\">Import Text using Examples<\/a>\u00a0allows users to extract a table from text files using examples.\r\n<blockquote><em>\u201cJust\u2026amazing. The number of transformations it can run through for this is incredible.\u201d<\/em><\/blockquote>\r\n<p style=\"padding-left: 120px\"><strong>Reid Havens<\/strong>, Power BI\u00a0MVP<\/p>\r\n\r\n<blockquote><em>\u201cNot certain how you managed to get me excited about TEXT files but you did it!\u201d<\/em><\/blockquote>\r\n<p style=\"padding-left: 120px\"><strong>Charles Sterling<\/strong><\/p>\r\n\r\n<h3>Blog posts<\/h3>\r\n<ul>\r\n \t<li><a href=\"https:\/\/hatfullofdata.blog\/power-bi-import-text-using-examples\/\" target=\"_blank\" rel=\"noopener\">https:\/\/hatfullofdata.blog\/power-bi-import-text-using-examples\/<\/a><\/li>\r\n<\/ul>\r\n<h3>Videos<\/h3>\r\n[row]\r\n[column class=\"m-col-12-24\"]\r\nhttps:\/\/youtu.be\/QBSAcQHVAKo?t=71\r\n[\/column]\r\n[column class=\"m-col-12-24\"] [\/column][\/row]\r\n<div style=\"height: 20px\"><\/div>\r\n<h3>Tweets<\/h3>\r\n[row][column class=\"m-col-8-24\"]\r\n<blockquote class=\"twitter-tweet\">\r\n<p dir=\"ltr\" lang=\"en\">Import Text\/CSV using Examples in <a href=\"https:\/\/x.com\/hashtag\/PowerBI?src=hash&amp;ref_src=twsrc%5Etfw\">#PowerBI<\/a> from <a href=\"https:\/\/x.com\/DhruvinShah16?ref_src=twsrc%5Etfw\">@DhruvinShah16<\/a> <a href=\"https:\/\/t.co\/POQAYmmQGf\">https:\/\/t.co\/POQAYmmQGf<\/a><\/p>\r\n\u2014 Power BI Weekly (@PowerBIWeekly) <a href=\"https:\/\/x.com\/PowerBIWeekly\/status\/1301129499443179520?ref_src=twsrc%5Etfw\">September 2, 2020<\/a><\/blockquote>\r\n[\/column]\r\n[column class=\"m-col-8-24\"]\r\n<blockquote class=\"twitter-tweet\">\r\n<p dir=\"ltr\" lang=\"en\">Top <a href=\"https:\/\/x.com\/hashtag\/cloud?src=hash&amp;ref_src=twsrc%5Etfw\">#cloud<\/a> <a href=\"https:\/\/x.com\/hashtag\/tech?src=hash&amp;ref_src=twsrc%5Etfw\">#tech<\/a> and <a href=\"https:\/\/x.com\/hashtag\/games?src=hash&amp;ref_src=twsrc%5Etfw\">#games<\/a> Power BI - Import text using examples - Hat Full of Data <a href=\"https:\/\/t.co\/ua50zarKoJ\">https:\/\/t.co\/ua50zarKoJ<\/a>, see more <a href=\"https:\/\/t.co\/ABxDJsvvMJ\">https:\/\/t.co\/ABxDJsvvMJ<\/a><\/p>\r\n\u2014 PTI Costa Rica (@pticostarica) <a href=\"https:\/\/x.com\/pticostarica\/status\/1297513921293758476?ref_src=twsrc%5Etfw\">August 23, 2020<\/a><\/blockquote>\r\n[\/column]\r\n[column class=\"m-col-8-24\"]\u00a0 [\/column][\/row]"},{"id":1,"name":"PowerShell","content":"<a href=\"https:\/\/docs.microsoft.com\/en-us\/powershell\/module\/microsoft.powershell.utility\/convertfrom-string?view=powershell-5.1\">ConvertFrom-String<\/a> allows users to extract data from a text file using an example template, which annotates some examples for extracted fields.\r\n<blockquote><em class=\"\">\u201cPowerShell v5 ConvertFrom-String query by example templates are brilliant\u201d<\/em><\/blockquote>\r\n<p style=\"padding-left: 120px\"><strong>Doug Finke<\/strong>, PowerShell MVP<\/p>\r\n\r\n<blockquote><em><span class=\"css-901oao css-16my406 r-1qd0xha r-ad9z0x r-bcqeeo r-qvutc0\"><em class=\"\">\u201c<\/em>Did a presentation on Parsing data using <\/span><span class=\"r-18u37iz\"><a class=\"css-4rbku5 css-18t94o4 css-901oao css-16my406 r-1n1174f r-1loqt21 r-1qd0xha r-ad9z0x r-bcqeeo r-qvutc0\" role=\"link\" href=\"https:\/\/x.com\/hashtag\/PowerShell?src=hashtag_click\" data-focusable=\"true\">#PowerShell<\/a><\/span><span class=\"css-901oao css-16my406 r-1qd0xha r-ad9z0x r-bcqeeo r-qvutc0\"> today in front of ~50 engineers. They all loved <\/span><span class=\"css-901oao css-16my406 r-1qd0xha r-vw2c0b r-ad9z0x r-bcqeeo r-qvutc0\">ConvertFrom-String<em class=\"\">\u201d<\/em><\/span><\/em><\/blockquote>\r\n<p style=\"padding-left: 120px\"><strong>Fran\u00e7ois-Xavier Cat<\/strong>, PowerShell MVP<\/p>\r\n\r\n<h3>Blog posts<\/h3>\r\n<ul>\r\n \t<li><a title=\"(Opens in new window)\" href=\"https:\/\/www.powershellmagazine.com\/2014\/09\/09\/using-the-convertfrom-string-cmdlet-to-parse-structured-text\/\" target=\"_blank\" rel=\"noopener\">Using the ConvertFrom-String cmdlet to parse structured text<\/a><\/li>\r\n \t<li><a title=\"(Opens in new window)\" href=\"https:\/\/lazywinadmin.com\/2014\/09\/powershell-playing-with-new-convertfrom.html\" target=\"_blank\" rel=\"noopener\">PowerShell \u2013 Playing with the new ConvertFrom-String cmdlet<\/a><\/li>\r\n \t<li><a title=\"(Opens in new window)\" href=\"http:\/\/www.happysysadm.com\/2014\/11\/first-look-at-convertfrom-string-in.html\" target=\"_blank\" rel=\"noopener\">First look at ConvertFrom-String in Powershell v5\u200b<\/a><\/li>\r\n \t<li><a title=\"(Opens in new window)\" href=\"http:\/\/serverfixes.com\/convertfrom-string\" target=\"_blank\" rel=\"noopener\">Using the \u2018Convertfrom-String\u2019 command in PowerShell 5.0\u200b<\/a><\/li>\r\n \t<li class=\"\"><a title=\"(Opens in new window)\" href=\"https:\/\/aka.ms\/prose-blog-extraction-text-may20\" target=\"_blank\" rel=\"noopener\">Import Text by Examples (Power Query)\u200b<\/a><\/li>\r\n<\/ul>\r\n<h3>Videos<\/h3>\r\n[row][column class=\"m-col-12-24\"]\r\nhttps:\/\/youtu.be\/Hkzd8spCfCU\r\n[\/column]\r\n[column class=\"m-col-12-24\"] [\/column][\/row]\r\n<div style=\"height: 20px\"><\/div>\r\n<h3>Tweets<\/h3>\r\n[row]\r\n[column class=\"m-col-8-24\"]\r\nhttps:\/\/x.com\/IrisClasson\/status\/517408586260295680?ref_src=twsrc%5Etfw\r\n[\/column]\r\n[column class=\"m-col-8-24\"]\r\n<blockquote class=\"twitter-tweet\">\r\n<p dir=\"ltr\" lang=\"en\"><a href=\"https:\/\/x.com\/hashtag\/PowerShell?src=hash&amp;ref_src=twsrc%5Etfw\">#PowerShell<\/a> <a href=\"https:\/\/x.com\/hashtag\/WMF5?src=hash&amp;ref_src=twsrc%5Etfw\">#WMF5<\/a> - The ConvertFrom-String is pretty awsome! Esp. for those that doesn't dream in RegEx;)<\/p>\r\n\u2014 Harald S. Fianbakken (@haraldsf) <a href=\"https:\/\/x.com\/haraldsf\/status\/528620025234862081?ref_src=twsrc%5Etfw\">November 1, 2014<\/a><\/blockquote>\r\n[\/column]\r\n[column class=\"m-col-8-24\"]\r\n<blockquote class=\"twitter-tweet\">\r\n<p dir=\"ltr\" lang=\"en\">PowerShell v5.0 \u2013 ConvertFrom-String Buddy <a href=\"http:\/\/t.co\/kGfEVaTLpU\">http:\/\/t.co\/kGfEVaTLpU<\/a> via <a href=\"https:\/\/x.com\/dfinke?ref_src=twsrc%5Etfw\">@dfinke<\/a><\/p>\r\n\u2014 Steven Murawski (@StevenMurawski) <a href=\"https:\/\/x.com\/StevenMurawski\/status\/634400773141581824?ref_src=twsrc%5Etfw\">August 20, 2015<\/a><\/blockquote>\r\n[\/column][\/row]\r\n\r\n[row]\r\n[column class=\"m-col-8-24\"]\r\n<blockquote class=\"twitter-tweet\">\r\n<p dir=\"ltr\" lang=\"en\">Using the ConvertFrom-String cmdlet to parse structured text <a href=\"http:\/\/t.co\/2SywbiPUZK\">http:\/\/t.co\/2SywbiPUZK<\/a><\/p>\r\n\u2014 PowerShell Magazine (@PowerShellMag) <a href=\"https:\/\/x.com\/PowerShellMag\/status\/509483763210797056?ref_src=twsrc%5Etfw\">September 9, 2014<\/a><\/blockquote>\r\n[\/column]\r\n[column class=\"m-col-8-24\"]\r\n<blockquote class=\"twitter-tweet\">\r\n<p dir=\"ltr\" lang=\"en\">.<a href=\"https:\/\/x.com\/adbertram?ref_src=twsrc%5Etfw\">@adbertram<\/a> For all the frustrations regexes cause, they are...\r\n- Powerful\r\n- Nearly universal\r\n- Documented in decades of examples and refs!<\/p>\r\n\u2014 Warren F. (@psCookieMonster) <a href=\"https:\/\/x.com\/psCookieMonster\/status\/644988476635639808?ref_src=twsrc%5Etfw\">September 18, 2015<\/a><\/blockquote>\r\n[\/column]\r\n[column class=\"m-col-8-24\"]\r\n<blockquote class=\"twitter-tweet\">\r\n<p dir=\"ltr\" lang=\"en\">PowerShell ConvertFrom-String: Serious Text wrangling by <a href=\"https:\/\/x.com\/dfinke?ref_src=twsrc%5Etfw\">@dfinke<\/a> <a href=\"https:\/\/t.co\/xnwzxbgko2\">https:\/\/t.co\/xnwzxbgko2<\/a> via <a href=\"https:\/\/x.com\/dotnetkicks?ref_src=twsrc%5Etfw\">@DotNetKicks<\/a><\/p>\r\n\u2014 DotNetKicks (@dotnetkicks) <a href=\"https:\/\/x.com\/dotnetkicks\/status\/656120775041249281?ref_src=twsrc%5Etfw\">October 19, 2015<\/a><\/blockquote>\r\n[\/column][\/row]\r\n\r\n[row]\r\n[column class=\"m-col-8-24\"]\r\n<blockquote class=\"twitter-tweet\">\r\n<p dir=\"ltr\" lang=\"en\">Subtle flex for <a href=\"https:\/\/x.com\/Lee_Holmes?ref_src=twsrc%5Etfw\">@Lee_Holmes<\/a> on MS devblogs site lol <a href=\"https:\/\/t.co\/lNGxdJT83G\">pic.x.com\/lNGxdJT83G<\/a><\/p>\r\n\u2014 karttoon (@noottrak) <a href=\"https:\/\/x.com\/noottrak\/status\/1230620250078498816?ref_src=twsrc%5Etfw\">February 20, 2020<\/a><\/blockquote>\r\n[\/column]\r\n[column class=\"m-col-8-24\"]\r\n<blockquote class=\"twitter-tweet\">\r\n<p dir=\"ltr\" lang=\"en\"><a href=\"https:\/\/x.com\/hashtag\/Powershell?src=hash&amp;ref_src=twsrc%5Etfw\">#Powershell<\/a>, how I love you... PS5.0 Convertfrom-String cmdlet parses arbitrary text into objects: <a href=\"http:\/\/t.co\/xpX0OytEsK\">http:\/\/t.co\/xpX0OytEsK<\/a><\/p>\r\n\u2014 Chris Gerritz (@gerritzc) <a href=\"https:\/\/x.com\/gerritzc\/status\/507984405772521472?ref_src=twsrc%5Etfw\">September 5, 2014<\/a><\/blockquote>\r\n[\/column]\r\n[column class=\"m-col-8-24\"]\r\n<blockquote class=\"twitter-tweet\">\r\n<p dir=\"ltr\" lang=\"en\">PowerShell V5 now has ConvertFrom-String which uses \"parsing by example\" technology from MSR <a href=\"http:\/\/t.co\/4nAkGUQuVS\">http:\/\/t.co\/4nAkGUQuVS<\/a> Have FUN with that!<\/p>\r\n\u2014 Jeffrey Snover (@jsnover) <a href=\"https:\/\/x.com\/jsnover\/status\/507914178531561472?ref_src=twsrc%5Etfw\">September 5, 2014<\/a><\/blockquote>\r\n[\/column][\/row]\r\n\r\n[row]\r\n[column class=\"m-col-8-24\"]\r\n<blockquote class=\"twitter-tweet\">\r\n<p dir=\"ltr\" lang=\"en\">Just realized ConvertFrom-String doesn't even exist on <a href=\"https:\/\/x.com\/hashtag\/PowerShell?src=hash&amp;ref_src=twsrc%5Etfw\">#PowerShell<\/a> v6. REGEX IT IS <a href=\"https:\/\/t.co\/rOCkqIT9gK\">pic.x.com\/rOCkqIT9gK<\/a><\/p>\r\n\u2014 Adam Driscoll (@adamdriscoll) <a href=\"https:\/\/x.com\/adamdriscoll\/status\/1050778891848048640?ref_src=twsrc%5Etfw\">October 12, 2018<\/a><\/blockquote>\r\n[\/column]\r\n[column class=\"m-col-8-24\"] [\/column]\r\n[column class=\"m-col-8-24\"] [\/column][\/row]"},{"id":2,"name":"Azure Monitor","content":"<a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/azure-monitor\/platform\/custom-fields\" target=\"_blank\" rel=\"noopener\">Custom fields in Azure Monitor<\/a> allows users to create new records from an existing one using examples.\r\n<blockquote><em>I've been blown away by what customers are able to do with it. Once customer had a requirement where they needed to use alerts in OMS via custom fields over SCOM data to extract AD information. The information was complicated and laid out in way where extraction via Regex would have been difficult and the customer did not want to learn Regex. Custom fields enabled them to extract the data easily so they could build alerts and dashboards based on these new fields.<\/em>\r\n\r\n<em>Custom fields is very useful and is used in all my demos. Once I dug into it I found so many use cases! All of our verbose alert descriptions are great now because now I can pull the data out easily and put it into visualizations. The accuracy of the field extractions has improved so much since the preview I haven't had any issues in a long time.\u201d<\/em><\/blockquote>\r\n<p style=\"padding-left: 120px\">- <strong>Shawn Tierney<\/strong> (MVP, Infront Consulting)<\/p>\r\n\r\n<h3>Videos<\/h3>\r\n[row]\r\n[column class=\"m-col-12-24\"]\r\nhttps:\/\/youtu.be\/N-aYZ3WDRII?t=591\r\n[\/column]\r\n[column class=\"m-col-12-24\"] [\/column][\/row]"}],"slides":[],"related-researchers":[{"type":"user_nicename","display_name":"Vu Le","user_id":39174,"people_section":"Section name 0","alias":"levu"},{"type":"user_nicename","display_name":"Sumit Gulwani","user_id":33755,"people_section":"Section name 0","alias":"sumitg"}],"msr_research_lab":[],"msr_impact_theme":[],"_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-project\/665739","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-project"}],"about":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/types\/msr-project"}],"version-history":[{"count":27,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-project\/665739\/revisions"}],"predecessor-version":[{"id":817429,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-project\/665739\/revisions\/817429"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media?parent=665739"}],"wp:term":[{"taxonomy":"msr-research-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/research-area?post=665739"},{"taxonomy":"msr-locale","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-locale?post=665739"},{"taxonomy":"msr-impact-theme","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-impact-theme?post=665739"},{"taxonomy":"msr-pillar","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-pillar?post=665739"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}