AI Writing Generator

AI Writing Generator — independent reviews, comparisons, pricing and step-by-step guides on Aizhi.

  • Showcase Workshop

    Showcase Workshop

    Showcase Workshop, also referred to as Showcase, is a SaaS company that develops a presentation-building application for business use. Users upload files and images to a web platform which generates presentations viewable on a suite of mobile apps. Showcase was founded in 2011. The company’s headquarters are in Wellington, New Zealand. == History == Showcase Workshop was originally developed in response to dynamically changing content being presented on iPads at the 2012 Olympics. After market-testing a beta version of the core application, Showcase Workshop launched commercially in 2012. In 2014 Showcase partnered with Vodafone Global Enterprise. == Product == Users upload pre-existing PDFs, videos, images and Microsoft Office documents to a secure server, building presentations or ‘showcases’ which can then be downloaded via the mobile apps. The presentations are used for mobile sales enablement, training, or operational/health and safety purposes. == Reception == Reviewers have praised the ease of use of Showcase, calling it a “better alternative to developing a native app” and “intuitive”. Criticisms include the lack of differing templates and a lack of complex customisation controls. Showcase was nominated for a Tabby Award in 2014 and won a Tabby Award in 2015 for its Windows app.

    Read more →
  • Vasant Honavar

    Vasant Honavar

    Vasant G. Honavar is an Indian-American computer scientist, and artificial intelligence, machine learning, big data, data science, causal inference, knowledge representation, bioinformatics and health informatics researcher and professor. == Early life and education == Vasant Honavar was born at Pune, India to Bhavani G. and Gajanan N. Honavar. He received his early education at the Vidya Vardhaka Sangha High School and M.E.S. College in Bangalore, India. He received a B.E. in Electronics & Communications Engineering from the B.M.S. College of Engineering in Bangalore, India in 1982, when it was affiliated with Bangalore University, an M.S. in electrical and computer engineering in 1984 from Drexel University, and an M.S. in computer science in 1989, and a Ph.D. in 1990, respectively, from the University of Wisconsin–Madison, where he studied Artificial Intelligence and worked with Leonard Uhr. == Career == Honavar is on the faculty of Informatics and Intelligent Systems Department in the Penn State College of Information Sciences and Technology at Pennsylvania State University where he currently holds the Dorothy Foehr Huck and J. Lloyd Huck Chair in Biomedical Data Sciences and Artificial Intelligence and previously held the Edward Frymoyer Endowed Chair in Information Sciences and Technology. He serves on the faculties of the graduate programs in Computer Science, Informatics, Bioinformatics and Genomics, Neuroscience, Operations Research, Public Health Sciences, and of undergraduate programs in Data Science and Artificial Intelligence methods and applications. Honavar serves as the director of the Artificial Intelligence Research Laboratory, Director of Strategic Initiatives for the Institute for Computational and Data Sciences and the director of the Center for Artificial Intelligence Foundations and Scientific Applications at Pennsylvania State University. Honavar served on the Leadership Team of the Northeast Big Data Innovation Hub. Honavar served on the Computing Research Association's Computing Community Consortium Council during 2014-2017, where he chaired the task force on Convergence of Data and Computing, and was a member of the task force on Artificial Intelligence. Honavar was the first Sudha Murty Distinguished Visiting Chair of Neurocomputing and Data Science by the Indian Institute of Science, Bangalore, India. Honavar was named a Distinguished Member of the Association for Computing Machinery for "outstanding scientific contributions to computing"; and elected a Fellow of the American Association for the Advancement of Science for his "distinguished research contributions and leadership in data science". As a Program Director in the Information Integration and Informatics program in the Information and Intelligent Systems Division of the Computer and Information Science and Engineering Directorate of the US National Science Foundation during 2010-13, Honavar led the Big Data Program. Honavar was a professor of computer science at Iowa State University where he led the Artificial Intelligence Research Laboratory which he founded in 1990 and was instrumental in establishing an interdepartmental graduate program in Bioinformatics and Computational Biology (and served as its Chair during 2003–2005). Honavar has held visiting professorships at Carnegie Mellon University, the University of Wisconsin–Madison, and at the Indian Institute of Science. == Research == Honavar's research has contributed to advances in artificial intelligence, machine learning, causal inference, knowledge representation, neural networks, semantic web, big data analytics, and bioinformatics and computational biology. He was a program chair of the Association for the Advancement of Artificial Intelligence(AAAI)'s 36th Conference on Artificial Intelligence. He has published over 300 research articles, including many highly cited ones, as well as several books on these topics. His recent work has focused on federated machine learning algorithms for constructing predictive models from distributed data and linked open data, learning predictive models from high dimensional longitudinal data, reasoning with federated knowledge bases, detecting algorithmic bias, big data analytics, analysis and prediction of protein-protein, protein-RNA, and protein-DNA interfaces and interactions, social network analytics, health informatics, secrecy-preserving query answering, representing and reasoning about preferences, and causal inference from complex, e.g., relational, data, large language models, diffusion models, and meta analysis. Honavar has been active in fostering national and international scientific collaborations in Artificial Intelligence, Data Sciences, and their applications in addressing national, international, and societal priorities in accelerating science, improving health, transforming agriculture through partnerships that bring together academia, non-profits, and industry. He is also active in making the science policy case for major national research initiatives such as AI for accelerating science and AI for combating the epidemic of diseases of despair. == Honors == National Science Foundation Director's Award for Superior Accomplishment, 2013 National Science Foundation Director's Award for Collaborative Integration, 2012 Margaret Ellen White Graduate Faculty Award, Iowa State University, 2011 Outstanding Career Achievement in Research Award, College of Liberal Arts and Sciences, Iowa State University, 2008 Regents Award for Faculty Excellence, Iowa Board of Regents, 2007 Edward Frymoyer Endowed Chair in Information Sciences and Technology, Penn State College of Information Sciences and Technology, Pennsylvania State University, 2013 Senior Faculty Research Excellence Award, Penn State College of Information Sciences and Technology, Pennsylvania State University, 2016 125 People of Impact, Department of Electrical and Computer Engineering, University of Wisconsin-Madison, 2016 Sudha Murty Distinguished (Visiting) Chair of Neurocomputing and Data Science, Indian Institute of Science, 2016-2021 ACM Distinguished Member, 2018 AAAS Fellow American Association for the Advancement of Science, 2018 EAI Fellow European Alliance for Innovation, 2019 Dorothy Foehr Huck and J. Lloyd Huck Chair in Biomedical Data Sciences and Artificial Intelligence, Pennsylvania State University, 2021

    Read more →
  • Automatic number-plate recognition

    Automatic number-plate recognition

    Automatic number-plate recognition (ANPR; see also other names below) is a technology that uses optical character recognition on images to read vehicle registration plates to create vehicle location data. It can use existing closed-circuit television, road-rule enforcement cameras, or cameras specifically designed for the task. ANPR is used by police forces around the world for law enforcement purposes, including checking if a vehicle is registered or licensed. It is also used for electronic toll collection on pay-per-use roads and as a method of cataloguing the movements of traffic, for example by highways agencies. Automatic number-plate recognition can be used to store the images captured by the cameras as well as the text from the license plate, with some configurable to store a photograph of the driver. Systems commonly use infrared lighting to allow the camera to take the picture at any time of day or night. ANPR technology must take into account plate variations from place to place. Privacy issues have caused concerns about ANPR, such as government tracking citizens' movements, misidentification, high error rates, and increased government spending. Critics have described it as a form of mass surveillance. == Other names == ANPR is also known by various other terms: Automatic (or automated) license-plate recognition (ALPR) Automatic (or automated) license-plate reader (ALPR) Automatic vehicle identification (AVI) Danish: Automatisk nummerpladegenkendelse, lit. 'Automatic number plate recognition' (ANPG) Car-plate recognition (CPR) License-plate recognition (LPR) French: Lecture automatique de plaques d'immatriculation, lit. 'Automatic reading of registration plates' (LAPI) Mobile license-plate reader (MLPR) Vehicle license-plate recognition (VLPR) Vehicle recognition identification (VRI) == Development == ANPR was invented in 1976 at the Police Scientific Development Branch in Britain. Prototype systems were working by 1979, and contracts were awarded to produce industrial systems, first at EMI Electronics, and then at Computer Recognition Systems (CRS, now part of Jenoptik) in Wokingham, UK. Early trial systems were deployed on the A1 road and at the Dartford Tunnel. The first arrest through detection of a stolen car was made in 1981. However, ANPR did not become widely used until new developments in cheaper and easier to use software were pioneered during the 1990s. The collection of ANPR data for future use (i.e., in solving then-unidentified crimes) was documented in the early 2000s. The first documented case of ANPR being used to help solve a murder occurred in November 2005, in Bradford, UK, where ANPR played a vital role in locating and subsequently convicting the killers of Sharon Beshenivsky. == Components == The software aspect of the system runs on standard home computer hardware and can be linked to other applications or databases. It first uses a series of image manipulation techniques to detect, normalize and enhance the image of the number plate, and then optical character recognition (OCR) to extract the alphanumerics of the license plate. ANPR systems are generally deployed in one of two basic approaches: one allows for the entire process to be performed at the lane location in real-time, and the other transmits all the images from many lanes to a remote computer location and performs the OCR process there at some later point in time. When done at the lane site, the information captured of the plate alphanumeric, date-time, lane identification, and any other information required is completed in approximately 250 milliseconds. This information can easily be transmitted to a remote computer for further processing if necessary, or stored at the lane for later retrieval. In the other arrangement, there are typically large numbers of PCs used in a server farm to handle high workloads, such as those found in the London congestion charge project. Often in such systems, there is a requirement to forward images to the remote server, and this can require larger bandwidth transmission media. === Technology === ANPR uses optical character recognition (OCR) on images taken by cameras. When Dutch vehicle registration plates switched to a different style in 2002, one of the changes made was to the font, introducing small gaps in some letters (such as P and R) to make them more distinct and therefore more legible to such systems. Some license plate arrangements use variations in font sizes and positioning—ANPR systems must be able to cope with such differences to be truly effective. More complicated systems can cope with international variants, though many programs are individually tailored to each country. The cameras used can be existing road-rule enforcement or closed-circuit television cameras, as well as mobile units, which are usually attached to vehicles. Some systems use infrared cameras to take a clearer image of the plates. ==== In mobile systems ==== During the 1990s, significant advances in technology took automatic number-plate recognition (ANPR) systems from limited expensive, hard to set up, fixed based applications to simple "point and shoot" mobile ones. This was made possible by the creation of software that ran on cheaper PC based, non-specialist hardware that also no longer needed to be given the pre-defined angles, direction, size and speed in which the plates would be passing the camera's field of view. Further scaled-down components at lower price points led to a record number of deployments by law enforcement agencies globally. Smaller cameras with the ability to read license plates at higher speeds, along with smaller, more durable processors that fit in the trunks of police vehicles, allowed law enforcement officers to patrol daily with the benefit of license plate reading in real time, when they can interdict immediately. Despite their effectiveness, there are noteworthy challenges related with mobile ANPRs. One of the biggest is that the processor and the cameras must work fast enough to accommodate relative speeds of more than 160 km/h (100 mph), a likely scenario in the case of oncoming traffic. This equipment must also be very efficient since the power source is the vehicle electrical system, and equipment must have minimal space requirements. Relative speed is only one issue that affects the camera's ability to read a license plate. Algorithms must be able to compensate for all the variables that can affect the ANPR's ability to produce an accurate read, such as time of day, weather and angles between the cameras and the license plates. A system's illumination wavelengths can also have a direct impact on the resolution and accuracy of a read in these conditions. Installing ANPR cameras on law enforcement vehicles requires careful consideration of the juxtaposition of the cameras to the license plates they are to read. Using the right number of cameras and positioning them accurately for optimal results can prove challenging, given the various missions and environments at hand. Highway patrol requires forward-looking cameras that span multiple lanes and are able to read license plates at high speeds. City patrol needs shorter range, lower focal length cameras for capturing plates on parked cars. Parking lots with perpendicularly parked cars often require a specialized camera with a very short focal length. Most technically advanced systems are flexible and can be configured with a number of cameras ranging from one to four which can easily be repositioned as needed. States with rear-only license plates have an additional challenge since a forward-looking camera is ineffective with oncoming traffic. In this case one camera may be turned backwards. === Algorithms === There are seven primary algorithms that the software requires for identifying a license plate: Plate localization – responsible for finding and isolating the plate on the picture Plate orientation and sizing – compensates for the skew of the plate and adjusts the dimensions to the required size Normalization – adjusts the brightness and contrast of the image Character segmentation – finds the individual characters on the plates Optical character recognition Syntactical/Geometrical analysis – check characters and positions against country-specific rules The averaging of the recognised value over multiple fields/images to produce a more reliable or confident result, especially given that any single image may contain a reflected light flare, be partially obscured, or possess other obfuscating effects. The complexity of each of these subsections of the program determines the accuracy of the system. During the third phase (normalization), some systems use edge detection techniques to increase the picture difference between the letters and the plate backing. A median filter may also be used to reduce the visual noise on the image. Contemporary ANPR systems use multiple data sources and analytical techniques that go beyond simple number

    Read more →
  • Eric Xing

    Eric Xing

    Eric Poe Xing (Chinese: 邢波) is an American computer scientist who has been serving as president of Mohamed bin Zayed University of Artificial Intelligence (MBZUAI) since January 2021. He is also a professor in the Carnegie Mellon University School of Computer Science where he founded the SAILING Lab in 2004, and is the co-founder of the AI companies Petuum and GenBio AI. Xing's research focuses on statistical machine learning, probabilistic graphical models, and systems for distributed machine learning. He was elected a Fellow of the Institute of Electrical and Electronics Engineers in 2019 for "contributions to machine learning algorithms and systems" and a Fellow of the Association for Computing Machinery in 2022 for "contributions to algorithms, architectures, and applications in machine learning." == Education == Xing earned a B.Sc. in physics from Tsinghua University in 1993, and an M.Sc. in computer science from Rutgers University in 1998. He earned a Ph.D. in molecular biology and biochemistry from Rutgers in 1999, supervised by molecular cancer researcher Chung S. Yang. His dissertation examined the inactivation of the Rb and p53 pathways in human esophageal squamous cell carcinoma. He earned a second Ph.D. in computer science from the University of California, Berkeley in 2004, supervised by Richard Karp, Michael I. Jordan, and Stuart J. Russell. His thesis applied probabilistic graphical models to motif identification and haplotype inference in genomic data. == Career == Xing joined Carnegie Mellon University (CMU) as a faculty member in 2004, where he created the Statistical Artificial Intelligence and Integrative Genomics (SAILING) Lab. He held visiting appointments from 2010 to 2011, serving as a visiting research professor at Facebook Inc. and as a visiting associate professor in the Department of Statistics at Stanford University. He served as co-Program Chair of the International Conference on Machine Learning (ICML) in 2014 and General Chair in 2019. Xing served as the founding director of CMU’s Center for Machine Learning and Health, established in 2015 as part of the Pittsburgh Health Data Alliance, a collaboration between CMU, the University of Pittsburgh, and the University of Pittsburgh Medical Center. In 2016, Xing co-founded Petuum Inc., a US-based startup. In 2017, Petuum raised $93 million in a round of venture funding from SoftBank. In 2018 Petuum was named a World Economic Forum Technology Pioneer. In 2019, Xing received the Carnegie Science Award for Startup Entrepreneurs in recognition of his leadership of Petuum. On 29 November 2020, Xing was appointed president of the Mohamed bin Zayed University of Artificial Intelligence (MBZUAI), with the appointment taking effect in January 2021. In 2024, Xing co-founded GenBio AI where he is chief scientist. The US-based startup, which he co-founded with David Baker, Ziv Bar-Joseph, Emma Lundberg, Le Song and Fred Hu, aims to create AI-driven digital organisms (AIDO) for the purposes of modeling medical treatments. Xing has overseen the launch of the MBZUAI Institute of Foundation Models (IFM), which focuses on research and development of large-scale foundation models. In 2025–2026, IFM released the open-source reasoning model K2 Think, which was covered internationally as part of the UAE’s push to develop domestically controlled (“sovereign”) AI capabilities. IFM presented PAN as a “world model” research project and demonstrated related systems publicly. MBZUAI also collaborated with G42 and Cerebras Systems on the Jais language model, an open-source Arabic–English large language model released in 2023, according to Reuters. == Awards and honors == Xing is a recipient of the National Science Foundation (NSF) Career Award and the Alfred P. Sloan Research Fellowship. Xing is an elected Fellow of the following institutes and associations: Association for the Advancement of Artificial Intelligence (AAAI) 2016 Institute of Electrical and Electronics Engineers (IEEE) 2019 for "contributions to machine learning algorithms and systems" American Statistical Association (ASA) 2022 Association for Computing Machinery (ACM) 2022 for "contributions to algorithms, architectures, and applications in machine learning" Institute of Mathematical Statistics (IMS) 2023 International Society for Computational Biology (ISCB) 2026 == Selected publications == Eric P. Xing; Michael I. Jordan; Stuart J. Russell; Andrew Y. Ng (2003). "Distance Metric Learning with Application to Clustering with Side-Information" (PDF). Advances in Neural Information Processing Systems 15. Advances in Neural Information Processing Systems. Wikidata Q77691192. Edoardo M. Airoldi; David M. Blei; Stephen E Fienberg; Eric P Xing (1 September 2008). "Mixed Membership Stochastic Blockmodels". Journal of Machine Learning Research. 9: 1981–2014. ISSN 1533-7928. PMC 3119541. PMID 21701698. Wikidata Q35058357. Eric P. Xing; Michael I. Jordan; Richard M. Karp (28 June 2001), Feature selection for high-dimensional genomic microarray data, vol. 18, pp. 601–608, Wikidata Q138678867 Xing EP; Karp RM (1 January 2001). "CLIFF: clustering of high-dimensional microarray data via iterative feature filtering using normalized cuts". Bioinformatics. 17 Suppl 1: S306-15. doi:10.1093/BIOINFORMATICS/17.SUPPL_1.S306. ISSN 1367-4803. PMID 11473022. Wikidata Q30657299.

    Read more →
  • Articulatory speech recognition

    Articulatory speech recognition

    Articulatory speech recognition means the recovery of speech (in forms of phonemes, syllables or words) from acoustic signals with the help of articulatory modeling or an extra input of articulatory movement data. Speech recognition (or automatic speech recognition, acoustic speech recognition) means the recovery of speech from acoustics (sound wave) only. Articulatory information is extremely helpful when the acoustic input is in low quality, perhaps because of noise or missing data. Measurable information from the articulatory system (e.g. tongue, jaw movements) can supplement acoustic signals to improve phone recognition accuracy by 2%. However, attempts to estimate articulatory data from acoustic signals alone have not significantly enhanced recognition performance.

    Read more →
  • Postediting

    Postediting

    Post-editing (or postediting) is the process whereby humans amend machine-generated translation to achieve an acceptable final product. A person who post-edits is called a post-editor. The concept of post-editing is linked to that of pre-editing. In the process of translating a text via machine translation, best results may be gained by pre-editing the source text – for example by applying the principles of controlled language – and then post-editing the machine output. It is distinct from editing, which refers to the process of improving human generated text (a process which is often known as revision in the field of translation). Post-edited text may afterwards be revised to ensure the quality of the language choices are proofread to correct simple mistakes. Post-editing involves the correction of machine translation output to ensure that it meets a level of quality negotiated in advance between the client and the post-editor. Light post-editing aims at making the output simply understandable; full post-editing at making it also stylistically appropriate. With advances in machine translation full post-editing is becoming an alternative to manual translation. Practically all computer-assisted translation (CAT) tools now support post-editing of machine translated output. == Post-editing and machine translation == Machine translation left the labs to start being used for its actual purpose in the late seventies at some big institutions such as the European Commission and the Pan-American Health Organization, and then, later, at some corporations such as Caterpillar and General Motors. First studies on post-editing appeared in the eighties, linked to those implementations. To develop appropriate guidelines and training, members of the Association for Machine Translation in the Americas (AMTA) and the European Association for Machine Translation (EAMT) set a Post-editing Special Interest Group in 1999. After the nineties, advances in computer power and connectivity sped machine translation development and allowed for its deployment through the web browser, including as a free, useful adjunct to the main search engines (Google Translate, Bing Translator, Yahoo! Babel Fish). A wider acceptance of less than perfect machine translation was accompanied also by a wider acceptance of post-editing. With the demand for localisation of goods and services growing at a pace that could not be met by human translation, not even assisted by translation memory and other translation management technologies, industry bodies such as the Translation Automation Users Society (TAUS) expect machine translation and post-editing to play a much bigger role within the next few years. The use of Machine Translation suggests sometimes pre-editing. Human translators possess significantly more sophisticated cognitive abilities than machine translation (MT) systems. They leverage a wealth of life experience, common sense, and multi-sensory input to understand context, identify semantic intent, and add cultural nuances to translations. This remains true even as MT capabilities continue to improve. Unlike MT systems, which primarily focus on literal word-for-word conversion, human translators grasp the underlying meaning and intent, even when information is implicit. They "read between the lines," guided by their understanding of the world. Essentially, MT models excel at text string prediction, not true comprehension. Their success often stems from framing problems as prediction tasks, such as in self-driving cars or fraud detection. Studies have demonstrated that integrating adaptive MT with post-editing interfaces can lead to reductions in technical effort and time, improving overall translation efficiency. These systems are also supported by research that highlights the benefits of adaptive MT in real-world translation scenarios. For example, incremental adaptation in Neural Machine Translation (NMT) for professional post-editors has been shown to improve translation quality and reduce time spent on edits, showcasing how human expertise and machine assistance can complement each other effectively. == Light and full post-editing == For many years, no widely accepted, standardized post-editing guidelines existed; however, in 2017, ISO standard 18587:2017: Translation services — Post-editing of machine translation output — Requirements was published. Studies in the eighties distinguished between degrees of post-editing which, in the context of the European Commission Translation Service, were first defined as conventional and rapid or full and rapid. Light and full post-editing seems the wording most used today. Light post-editing implies minimal intervention by the post-editor, with the aim of ensuring quality is "good enough" or "understandable"; the expectation is that the client will use it for inbound purposes only, often when the text is needed urgently, or has a short time span. Full post-editing involves a greater level of intervention to achieve a degree of quality to be negotiated between client and post-editor; the expectation is that the outcome will be a text that is not only understandable but presented in some stylistically appropriate way, so it can be used for assimilation and even for dissemination, for inbound and for outbound purposes. The quality is expected to be publishable and equivalent to that of a human translation. The assumption, however, has been that it takes less effort for translators to work directly from the source text than to post-edit the machine generated version. With advances in machine translation, this may be changing. For some language pairs and for some tasks, and with engines that have been customised with domain specific good quality data, some clients are already requesting translators to post-edit instead of translating from scratch, in the belief that they will attain similar quality at a lower cost. The light/full classification, developed in the nineties when machine translation still came on a CD-ROM, may not suit advances in machine translation at the light post-editing end either. For some language pairs and some tasks, particularly if the source has been pre-edited, raw machine output may be good enough for gisting purposes without requiring subsequent human intervention. == Post-editing efficiency == Post-editing is used when raw machine translation is not good enough and human translation not required. Industry advises post-editing to be used when it can at least double the productivity of manual translation, even fourfold it in the case of light post-editing (1000 words per hour vs. 250 wph). However, post-editing efficiency is difficult to predict. Various studies from both academia and industry have claimed that post-editing is generally faster than translating from scratch, regardless of language pairs or translators' experience. There is, however, no agreement about how much time can be saved through post-editing in practice (if any at all): While the industry reports on time savings around 40%, some academic studies suggest that time savings under actual working conditions are more likely to be between 0–20%, or that it may depend on the terminological proximity between the source and target languages. Professionals have also reported negative productivity gains where corrections require more time than to translate from scratch. == Post-editing and the language industry == After some thirty years, post-editing is still "a nascent profession". What the right profile of the post-editor is, has not yet been fully studied. Post-editing overlaps with translating and editing, but only partially. Most think the ideal post-editor will be a translator keen to be trained on the specific skills required, but there are some who think a bilingual without a background in translation may be easier to train. Not much is known either on who the actual post-editors are, whether they tend to be professional translators, whether they work mostly as in-house employees or self-employed, and on which conditions. Many professional translators dislike post-editing, among other reasons because it tends to be paid at lower rates than conventional translations, with the International Association of Professional Translators and Interpreters (IAPTI) having been particularly vocal about it.

    Read more →
  • AI Virtual Assistants: Free vs Paid (2026)

    AI Virtual Assistants: Free vs Paid (2026)

    Trying to pick the best AI virtual assistant? An AI virtual assistant is software that uses machine learning to help you get more done — it scales effortlessly from a single task to thousands. The best picks balance beginner-friendly simplicity with the depth power users need, and they ship updates often. Whether you are a beginner or a pro, the right AI virtual assistant slots into your workflow and pays for itself fast. Read on for hands-on impressions, pricing tiers, and the standout features that matter.

    Read more →
  • Top 10 Conversational AI Platforms Compared (2026)

    Top 10 Conversational AI Platforms Compared (2026)

    In search of the best conversational AI platform? An conversational AI platform is software that uses machine learning to help you get more done — it turns a rough idea into a polished result in seconds. When choosing one, weigh output quality, pricing, export formats, and how well it fits the tools you already use. Whether you are a beginner or a pro, the right conversational AI platform slots into your workflow and pays for itself fast. We tested the leading options and ranked them by quality, value, and ease of use.

    Read more →
  • List of Go software and tools

    List of Go software and tools

    This is a list of Go software and tools, including compilers, development environments, build tools, testing frameworks, web frameworks, database tools, and related software for the Go programming language. == Core toolchain == Go — programming language and toolchain go command — build and package tool gofmt — source code formatter go vet — static analysis tool == Compilers and runtimes == gc — default Go compiler gccgo — GCC front end for Go GopherJS — Go-to-JavaScript compiler gollvm — Go compiler using the LLVM backend llgo — experimental Go frontend for LLVM TinyGo — compiler for embedded systems and WebAssembly Yaegi — Go interpreter == Development environments and editors == Emacs — text editor with Go support GoLand — JetBrains integrated development environment LiteIDE — Go-focused integrated development environment Neovim — text editor with Go support TextMate — text editor with Go support Vim — text editor with Go support Visual Studio Code — editor with Go support == Language servers and editor tools == delve — debugger gopls — Go language server golangci-lint — lint runner revive — linter staticcheck — static analysis tool == Build, dependency and release tools == Air — live reload development tool dep — deprecated dependency manager Go modules — dependency management system Goreleaser — release automation tool Mage — build tool Task — task runner == Testing and benchmarking == benchstat — benchmark comparison tool Ginkgo — testing framework GoMock — mock generation tool testify — testing toolkit testing — standard testing package == Web frameworks and HTTP tools == Beego — web framework Caddy — web server Chi — router Echo — web framework Fiber — web framework Gin — web framework Gorilla Mux — router Hugo — static site generator Revel — web framework Traefik — reverse proxy and load balancer == RPC and API tools == Goa — API design framework gRPC — remote procedure call framework grpc-gateway — REST gateway oapi-codegen — OpenAPI code generator Swag — OpenAPI documentation tool == Database and ORM tools == Bun — SQL toolkit and ORM CockroachDB client libraries — database drivers and tools ent — entity framework GORM — object–relational mapper sqlx — SQL toolkit == Command-line and terminal tools == Bubble Tea — terminal user interface framework Cobra — command-line framework pflag — flag parsing library urfave/cli — command-line framework Viper — configuration library == GUI toolkits and application frameworks == Fyne — cross-platform graphical user interface toolkit == Documentation, generation and analysis == errcheck — unchecked error checker godoc — documentation tool goimports — import management tool mockgen — mock generator pkgsite — package documentation site Prometheus — monitoring and alerting toolkit stringer — code generation tool wire — dependency injection code generator == Package hosting and community services == GoCenter — former Go package repository pkg.go.dev — package documentation and discovery site proxy.golang.org — module proxy == Major applications written in Go == Consul — service networking platform Docker — containerization platform InfluxDB — time-series database written in Go Kubernetes — container orchestration platform Ollama — platform for running and managing large language models locally Terraform — infrastructure as code tool Vault — secrets management tool

    Read more →
  • Best AI Background Removers in 2026

    Best AI Background Removers in 2026

    Comparing the best AI background remover? An AI background remover is software that uses machine learning to help you get more done — it lowers the barrier so anyone can produce professional output. Privacy matters too: check whether your data trains the model and whether a no-log or enterprise tier is available. Whether you are a beginner or a pro, the right AI background remover slots into your workflow and pays for itself fast. We tested the leading options and ranked them by quality, value, and ease of use.

    Read more →
  • Mehryar Mohri

    Mehryar Mohri

    Mehryar Mohri is a professor and theoretical computer scientist at the Courant Institute of Mathematical Sciences. He is also heading the Machine Learning Theory (ML Theory) team at Google Research. == Career == Prior to joining the Courant Institute, Mohri was a research department head and later technology leader at AT&T Bell Labs, where he was a member of the technical staff for about ten years. Mohri has also taught as an assistant professor at the University of Paris 7 (1992-1993) and Ecole Polytechnique (1992-1994). == Research == Mohri's main area of research is machine learning, in particular learning theory. He is also an expert in automata theory and algorithms. He is the author of several core algorithms that have served as the foundation for the design of many deployed speech recognition and natural language processing systems. == Publications == Mohri is the author of the reference book Foundations of Machine Learning used as a textbook in many graduate-level machine learning courses. Mohri is also a member of the Lothaire group of mathematicians with the pseudonym M. Lothaire and contributed to the book on Applied Combinatorics on Words. He is the author of more than 250 conference and journal publications. == Organizational affiliations == Mohri is currently the President of the Association for Algorithmic Learning Theory (AALT) and the Steering Committee Chair for the ALT conference. He is also Editorial Board member of Machine Learning and TheoretiCS, Action Editor of the Journal of Machine Learning Research (JMLR) and a member of the advisory board for the Journal of Automata, Languages and Combinatorics.

    Read more →
  • Additive smoothing

    Additive smoothing

    In statistics, additive smoothing, also called Laplace smoothing or Lidstone smoothing, is a technique used to smooth count data, eliminating issues caused by certain values having 0 occurrences. Given a set of observation counts x = ⟨ x 1 , x 2 , … , x d ⟩ {\displaystyle \mathbf {x} =\langle x_{1},x_{2},\ldots ,x_{d}\rangle } from a d {\displaystyle d} -dimensional multinomial distribution with N {\displaystyle N} trials, a "smoothed" version of the counts gives the estimator θ ^ i = x i + α N + α d ( i = 1 , … , d ) , {\displaystyle {\hat {\theta }}_{i}={\frac {x_{i}+\alpha }{N+\alpha d}}\qquad (i=1,\ldots ,d),} where the smoothed count x ^ i = N θ ^ i {\displaystyle {\hat {x}}_{i}=N{\hat {\theta }}_{i}} , and the "pseudocount" α > 0 is a smoothing parameter, with α = 0 corresponding to no smoothing (this parameter is explained in § Pseudocount below). Additive smoothing is a type of shrinkage estimator, as the resulting estimate will be between the empirical probability (relative frequency) x i / N {\displaystyle x_{i}/N} and the uniform probability 1 / d . {\displaystyle 1/d.} Common choices for α are 0 (no smoothing), +1⁄2 (the Jeffreys prior), or 1 (Laplace's rule of succession), but the parameter may also be set empirically based on the observed data. From a Bayesian point of view, this corresponds to the expected value of the posterior distribution, using a symmetric Dirichlet distribution with parameter α as a prior distribution. In the special case where the number of categories is 2, this is equivalent to using a beta distribution as the conjugate prior for the parameters of the binomial distribution. == History == Laplace came up with this smoothing technique when he tried to estimate the chance that the sun will rise tomorrow. His rationale was that even given a large sample of days with the rising sun, we still can not be completely sure that the sun will still rise tomorrow (known as the sunrise problem). == Pseudocount == A pseudocount is an amount (not generally an integer, despite its name) added to the number of observed cases in order to change the expected probability in a model of those data, when not known to be zero. It is so named because, roughly speaking, a pseudo-count of value α {\displaystyle \alpha } weighs into the posterior distribution similarly to each category having an additional count of α {\displaystyle \alpha } . If the number of occurrences of each item i {\displaystyle i} is x i {\displaystyle x_{i}} out of N {\displaystyle N} samples, the empirical probability of event i {\displaystyle i} is p i , empirical = x i N , {\displaystyle p_{i,{\text{empirical}}}={\frac {x_{i}}{N}},} but the posterior probability when additively smoothed is p i , α -smoothed = x i + α N + α d , {\displaystyle p_{i,\alpha {\text{-smoothed}}}={\frac {x_{i}+\alpha }{N+\alpha d}},} as if to increase each count x i {\displaystyle x_{i}} by α {\displaystyle \alpha } a priori. Depending on the prior knowledge, which is sometimes a subjective value, a pseudocount may have any non-negative finite value. It may only be zero (or the possibility ignored) if impossible by definition, such as the possibility of a decimal digit of π being a letter, or a physical possibility that would be rejected and so not counted, such as a computer printing a letter when a valid program for π is run, or excluded and not counted because of no interest, such as if only interested in the zeros and ones. Generally, there is also a possibility that no value may be computable or observable in a finite time (see the halting problem). But at least one possibility must have a non-zero pseudocount, otherwise no prediction could be computed before the first observation. The relative values of pseudocounts represent the relative prior expected probabilities of their possibilities. The sum of the pseudocounts, which may be very large, represents the estimated weight of the prior knowledge compared with all the actual observations (one for each) when determining the expected probability. In any observed data set or sample there is the possibility, especially with low-probability events and with small data sets, of a possible event not occurring. Its observed frequency is therefore zero, apparently implying a probability of zero. This oversimplification is inaccurate and often unhelpful, particularly in probability-based machine learning techniques such as artificial neural networks and hidden Markov models. By artificially adjusting the probability of rare (but not impossible) events so those probabilities are not exactly zero, zero-frequency problems are avoided. Also see Cromwell's rule. === Choice of pseudocount === ==== Weakly informative prior ==== One common approach is to add 1 to each observed number of events, including the zero-count possibilities. This is sometimes called Laplace's rule of succession. This approach is equivalent to assuming a uniform prior distribution over the probabilities for each possible event (spanning the simplex where each probability is between 0 and 1, and they all sum to 1). Using the Jeffreys prior approach, a pseudocount of one half should be added to each possible outcome. Pseudocounts should be set to one or one-half only when there is no prior knowledge at all – see the principle of indifference. However, given appropriate prior knowledge, the sum should be adjusted in proportion to the expectation that the prior probabilities should be considered correct, despite evidence to the contrary – see further analysis. Higher values are appropriate inasmuch as there is prior knowledge of the true values (for a mint-condition coin, say); lower values inasmuch as there is prior knowledge that there is probable bias, but of unknown degree (for a bent coin, say). ==== Frequentist interval ==== One way to motivate pseudocounts, particularly for binomial data, is via a formula for the midpoint of an interval estimate, particularly a binomial proportion confidence interval. The best-known is due to Edwin Bidwell Wilson, in Wilson (1927): the midpoint of the Wilson score interval corresponding to ⁠ z {\displaystyle z} ⁠ standard deviations on either side is n S + z n + 2 z {\displaystyle {\frac {n_{S}+z}{n+2z}}} Taking z = 2 {\displaystyle z=2} standard deviations to approximate a 95% confidence interval (⁠ z ≈ 1.96 {\displaystyle z\approx 1.96} ⁠) yields pseudocount of 2 for each outcome, so 4 in total, colloquially known as the "plus four rule": n S + 2 n + 4 {\displaystyle {\frac {n_{S}+2}{n+4}}} This is also the midpoint of the Agresti–Coull interval (Agresti & Coull 1998). ==== Known incidence rates ==== Often the bias of an unknown trial population is tested against a control population with known parameters (incidence rates) μ = ⟨ μ 1 , μ 2 , … , μ d ⟩ . {\displaystyle {\boldsymbol {\mu }}=\langle \mu _{1},\mu _{2},\ldots ,\mu _{d}\rangle .} In this case the uniform probability 1 / d {\displaystyle 1/d} should be replaced by the known incidence rate of the control population μ i {\displaystyle \mu _{i}} to calculate the smoothed estimator: θ ^ i = x i + μ i α d N + α d ( i = 1 , … , d ) . {\displaystyle {\hat {\theta }}_{i}={\frac {x_{i}+\mu _{i}\alpha d}{N+\alpha d}}\qquad (i=1,\ldots ,d).} As a consistency check, if the empirical estimator happens to equal the incidence rate, i.e. μ i = x i / N , {\displaystyle \mu _{i}=x_{i}/N,} the smoothed estimator is independent of α {\displaystyle \alpha } and also equals the incidence rate. == Applications == === Classification === Additive smoothing is commonly a component of naive Bayes classifiers. === Statistical language modelling === In a bag of words model of natural language processing and information retrieval, the data consists of the number of occurrences of each word in a document. Additive smoothing allows the assignment of non-zero probabilities to words which do not occur in the sample. Studies have shown that additive smoothing is more effective than other probability smoothing methods in several retrieval tasks such as language-model-based pseudo-relevance feedback and recommender systems.

    Read more →
  • Automatic summarization

    Automatic summarization

    Automatic summarization is the process of shortening a set of data computationally, to create a subset (a summary) that represents the most important or relevant information within the original content. Artificial intelligence (AI) algorithms are commonly developed and employed to achieve this, specialized for different types of data. Text summarization is usually implemented by natural language processing methods, designed to locate the most informative sentences in a given document. On the other hand, visual content can be summarized using computer vision algorithms. Image summarization is the subject of ongoing research; existing approaches typically attempt to display the most representative images from a given image collection, or generate a video that only includes the most important content from the entire collection. Video summarization algorithms identify and extract from the original video content the most important frames (key-frames), and/or the most important video segments (key-shots), normally in a temporally ordered fashion. Video summaries simply retain a carefully selected subset of the original video frames and, therefore, are not identical to the output of video synopsis algorithms, where new video frames are being synthesized based on the original video content. == Commercial products == In 2022 Google Docs released an automatic summarization feature. == Approaches == There are two general approaches to automatic summarization: extraction and abstraction. === Extraction-based summarization === Here, content is extracted from the original data, but the extracted content is not modified in any way. Examples of extracted content include key-phrases that can be used to "tag" or index a text document, or key sentences (including headings) that collectively comprise an abstract, and representative images or video segments, as stated above. For text, extraction is analogous to the process of skimming, where the summary (if available), headings and subheadings, figures, the first and last paragraphs of a section, and optionally the first and last sentences in a paragraph are read before one chooses to read the entire document in detail. Other examples of extraction that include key sequences of text in terms of clinical relevance (including patient/problem, intervention, and outcome). === Abstractive-based summarization === Abstractive summarization methods generate new text that did not exist in the original text. This has been applied mainly for text. Abstractive methods build an internal semantic representation of the original content (often called a language model), and then use this representation to create a summary that is closer to what a human might express. Abstraction may transform the extracted content by paraphrasing sections of the source document, to condense a text more strongly than extraction. Such transformation, however, is computationally much more challenging than extraction, involving both natural language processing and often a deep understanding of the domain of the original text in cases where the original document relates to a special field of knowledge. "Paraphrasing" is even more difficult to apply to images and videos, which is why most summarization systems are extractive. === Aided summarization === Approaches aimed at higher summarization quality rely on combined software and human effort. In Machine Aided Human Summarization, extractive techniques highlight candidate passages for inclusion (to which the human adds or removes text). In Human Aided Machine Summarization, a human post-processes software output, in the same way that one edits the output of automatic translation by Google Translate. == Applications and systems for summarization == There are broadly two types of extractive summarization tasks depending on what the summarization program focuses on. The first is generic summarization, which focuses on obtaining a generic summary or abstract of the collection (whether documents, or sets of images, or videos, news stories etc.). The second is query relevant summarization, sometimes called query-based summarization, which summarizes objects specific to a query. Summarization systems are able to create both query relevant text summaries and generic machine-generated summaries depending on what the user needs. An example of a summarization problem is document summarization, which attempts to automatically produce an abstract from a given document. Sometimes one might be interested in generating a summary from a single source document, while others can use multiple source documents (for example, a cluster of articles on the same topic). This problem is called multi-document summarization. A related application is summarizing news articles. Imagine a system, which automatically pulls together news articles on a given topic (from the web), and concisely represents the latest news as a summary. Image collection summarization is another application example of automatic summarization. It consists in selecting a representative set of images from a larger set of images. A summary in this context is useful to show the most representative images of results in an image collection exploration system. Video summarization is a related domain, where the system automatically creates a trailer of a long video. This also has applications in consumer or personal videos, where one might want to skip the boring or repetitive actions. Similarly, in surveillance videos, one would want to extract important and suspicious activity, while ignoring all the boring and redundant frames captured. At a very high level, summarization algorithms try to find subsets of objects (like set of sentences, or a set of images), which cover information of the entire set. This is also called the core-set. These algorithms model notions like diversity, coverage, information and representativeness of the summary. Query based summarization techniques, additionally model for relevance of the summary with the query. Some techniques and algorithms which naturally model summarization problems are TextRank and PageRank, Submodular set function, Determinantal point process, maximal marginal relevance (MMR) etc. === Keyphrase extraction === The task is the following. You are given a piece of text, such as a journal article, and you must produce a list of keywords or key[phrase]s that capture the primary topics discussed in the text. In the case of research articles, many authors provide manually assigned keywords, but most text lacks pre-existing keyphrases. For example, news articles rarely have keyphrases attached, but it would be useful to be able to automatically do so for a number of applications discussed below. Consider the example text from a news article: "The Army Corps of Engineers, rushing to meet President Bush's promise to protect New Orleans by the start of the 2006 hurricane season, installed defective flood-control pumps last year despite warnings from its own expert that the equipment would fail during a storm, according to documents obtained by The Associated Press". A keyphrase extractor might select "Army Corps of Engineers", "President Bush", "New Orleans", and "defective flood-control pumps" as keyphrases. These are pulled directly from the text. In contrast, an abstractive keyphrase system would somehow internalize the content and generate keyphrases that do not appear in the text, but more closely resemble what a human might produce, such as "political negligence" or "inadequate protection from floods". Abstraction requires a deep understanding of the text, which makes it difficult for a computer system. Keyphrases have many applications. They can enable document browsing by providing a short summary, improve information retrieval (if documents have keyphrases assigned, a user could search by keyphrase to produce more reliable hits than a full-text search), and be employed in generating index entries for a large text corpus. Depending on the different literature and the definition of key terms, words or phrases, keyword extraction is a highly related theme. ==== Supervised learning approaches ==== Beginning with the work of Turney, many researchers have approached keyphrase extraction as a supervised machine learning problem. Given a document, we construct an example for each unigram, bigram, and trigram found in the text (though other text units are also possible, as discussed below). We then compute various features describing each example (e.g., does the phrase begin with an upper-case letter?). We assume there are known keyphrases available for a set of training documents. Using the known keyphrases, we can assign positive or negative labels to the examples. Then we learn a classifier that can discriminate between positive and negative examples as a function of the features. Some classifiers make a binary classification for a test example, while others assign a probability of being a keyphrase. For ins

    Read more →
  • Pumping lemma for regular languages

    Pumping lemma for regular languages

    In the theory of formal languages, the pumping lemma for regular languages is a lemma that describes an essential property of all regular languages. Informally, it says that all sufficiently long strings in a regular language may be pumped—that is, have a middle section of the string repeated an arbitrary number of times—to produce a new string that is also part of the language. The pumping lemma is useful for proving that a specific language is not a regular language, by showing that the language does not have the property. Specifically, the pumping lemma says that for any regular language L {\displaystyle L} , there exists a constant p {\displaystyle p} such that any string w {\displaystyle w} in L {\displaystyle L} with length at least p {\displaystyle p} can be split into three substrings x {\displaystyle x} , y {\displaystyle y} and z {\displaystyle z} ( w = x y z {\displaystyle w=xyz} , with y {\displaystyle y} being non-empty), such that the strings x z , x y z , x y y z , x y y y z , . . . {\displaystyle xz,xyz,xyyz,xyyyz,...} are also in L {\displaystyle L} . The process of repeating y {\displaystyle y} zero or more times is known as "pumping". Moreover, the pumping lemma guarantees that the length of x y {\displaystyle xy} will be at most p {\displaystyle p} , thus giving a "small" substring x y {\displaystyle xy} that has the desired property. Languages with a finite number of strings vacuously satisfy the pumping lemma by having p {\displaystyle p} equal to the maximum string length in L {\displaystyle L} plus one. By doing so, no strings at all in L {\displaystyle L} have length at least p {\displaystyle p} . The pumping lemma was first proven by Michael Rabin and Dana Scott in 1959, and rediscovered shortly after by Yehoshua Bar-Hillel, Micha A. Perles, and Eli Shamir in 1961, as a simplification of their pumping lemma for context-free languages. == Formal statement == Let L {\displaystyle L} be a regular language. Then there exists an integer p ≥ 1 {\displaystyle p\geq 1} depending only on L {\displaystyle L} such that every string w {\displaystyle w} in L {\displaystyle L} of length at least p {\displaystyle p} ( p {\displaystyle p} is called the "pumping length") can be written as w = x y z {\displaystyle w=xyz} (i.e., w {\displaystyle w} can be divided into three substrings), satisfying the following conditions: | y | ≥ 1 {\displaystyle |y|\geq 1} | x y | ≤ p {\displaystyle |xy|\leq p} ( ∀ n ≥ 0 ) ( x y n z ∈ L ) {\displaystyle (\forall n\geq 0)(xy^{n}z\in L)} y {\displaystyle y} is the substring that can be pumped (removed or repeated any number of times, and the resulting string is always in L {\displaystyle L} ). (1) means the loop y {\displaystyle y} to be pumped must be of length at least one, that is, not an empty string; (2) means the loop must occur within the first p {\displaystyle p} characters. | x | {\displaystyle |x|} must be smaller than p {\displaystyle p} (conclusion of (1) and (2)), but apart from that, there is no restriction on x {\displaystyle x} and z {\displaystyle z} . In simple words, for any regular language L {\displaystyle L} , any sufficiently long string w {\displaystyle w} (in L {\displaystyle L} ) can be split into 3 parts, i.e. w = x y z {\displaystyle w=xyz} , such that all the strings x y n z {\displaystyle xy^{n}z} for n ≥ 0 {\displaystyle n\geq 0} are also in L {\displaystyle L} . Below is a formal expression of the pumping lemma. ∀ L ⊆ Σ ∗ , regular ( L ) ⟹ ∃ p ≥ 1 , ∀ w ∈ L , | w | ≥ p ⟹ ∃ x , y , z ∈ Σ ∗ , ( w = x y z ) ∧ ( | y | ≥ 1 ) ∧ ( | x y | ≤ p ) ∧ ( ∀ n ≥ 0 , x y n z ∈ L ) {\displaystyle {\begin{array}{l}\forall L\subseteq \Sigma ^{},{\mbox{regular}}(L)\implies \\\quad \exists p\geq 1,\forall w\in L,|w|\geq p\implies \\\qquad \exists x,y,z\in \Sigma ^{},(w=xyz)\land (|y|\geq 1)\land (|xy|\leq p)\land (\forall n\geq 0,xy^{n}z\in L)\end{array}}} == Use of the lemma to prove non-regularity == The pumping lemma is often used to prove that a particular language is non-regular: a proof by contradiction may consist of exhibiting a string (of the required length) in the language that lacks the property outlined in the pumping lemma. Example: The language L = { a n b n : n ≥ 0 } {\displaystyle L=\{a^{n}b^{n}:n\geq 0\}} over the alphabet Σ = { a , b } {\displaystyle \Sigma =\{a,b\}} can be shown to be non-regular as follows: Assume that some constant p ≥ 1 {\displaystyle p\geq 1} exists as required by the lemma. Let w {\displaystyle w} in L {\displaystyle L} be given by w = a p b p {\displaystyle w=a^{p}b^{p}} , which is a string longer than p {\displaystyle p} . By the pumping lemma, there must exist a decomposition w = x y z {\displaystyle w=xyz} with | x y | ≤ p {\displaystyle |xy|\leq p} and | y | ≥ 1 {\displaystyle |y|\geq 1} such that x y i z {\displaystyle xy^{i}z} in L {\displaystyle L} for every i ≥ 0 {\displaystyle i\geq 0} . Since | x y | ≤ p {\displaystyle |xy|\leq p} , the string y {\displaystyle y} only consists of instances of a {\displaystyle a} . Because | y | ≥ 1 {\displaystyle |y|\geq 1} , it contains at least one instance of the letter a {\displaystyle a} . Pumping y {\displaystyle y} to give x y 2 z {\displaystyle xy^{2}z} gives a word with more instances of the letter a {\displaystyle a} than the letter b {\displaystyle b} , since some instances of a {\displaystyle a} but none of b {\displaystyle b} were added. Therefore, x y 2 z {\displaystyle xy^{2}z} is not in L {\displaystyle L} which contradicts the pumping lemma. Therefore, L {\displaystyle L} cannot be regular. The proof that the language of balanced (i.e., properly nested) parentheses is not regular follows the same idea. Given p {\displaystyle p} , there is a string of balanced parentheses that begins with more than p {\displaystyle p} left parentheses, so that y {\displaystyle y} will consist entirely of left parentheses. By repeating y {\displaystyle y} , a string can be produced that does not contain the same number of left and right parentheses, and so they cannot be balanced. == Proof of the pumping lemma == For every regular language there is a finite-state automaton (FSA) that accepts the language. The number of states in such an FSA are counted and that count is used as the pumping length p {\displaystyle p} . For a string of length at least p {\displaystyle p} , let q 0 {\displaystyle q_{0}} be the start state and let q 1 , . . . , q p {\displaystyle q_{1},...,q_{p}} be the sequence of the next p {\displaystyle p} states visited as the string is emitted. Because the FSA has only p {\displaystyle p} states, within this sequence of p + 1 {\displaystyle p+1} visited states there must be at least one state that is repeated. Write q s {\displaystyle q_{s}} for such a state. The transitions that take the machine from the first encounter of state q s {\displaystyle q_{s}} to the second encounter of state q s {\displaystyle q_{s}} match some string. This string is called y {\displaystyle y} in the lemma, and since the machine will match a string without the y {\displaystyle y} portion, or with the string y {\displaystyle y} repeated any number of times, the conditions of the lemma are satisfied. For example, the following image shows an FSA. The FSA accepts the string: abcd. Since this string has a length at least as large as the number of states, which is four (so the total number of states that the machine passes through to scan abcd would be 5), the pigeonhole principle indicates that there must be at least one repeated state among the start state and the next four visited states. In this example, only q 1 {\displaystyle q_{1}} is a repeated state. Since the substring bc takes the machine through transitions that start at state q 1 {\displaystyle q_{1}} and end at state q 1 {\displaystyle q_{1}} , that portion could be repeated and the FSA would still accept, giving the string abcbcd. Alternatively, the bc portion could be removed and the FSA would still accept giving the string ad. In terms of the pumping lemma, the string abcd is broken into an x {\displaystyle x} portion a, a y {\displaystyle y} portion bc and a z {\displaystyle z} portion d. As a side remark, the problem of checking whether a given string can be accepted by a given nondeterministic finite automaton without visiting any state repeatedly, is NP hard. == General version of pumping lemma for regular languages == If a language L {\displaystyle L} is regular, then there exists a number p ≥ 1 {\displaystyle p\geq 1} (the pumping length) such that every string u w v {\displaystyle uwv} in L {\displaystyle L} with | w | ≥ p {\displaystyle |w|\geq p} can be written in the form u w v = u x y z v {\displaystyle uwv=uxyzv} with strings x {\displaystyle x} , y {\displaystyle y} and z {\displaystyle z} such that | x y | ≤ p {\displaystyle |xy|\leq p} , | y | ≥ 1 {\displaystyle |y|\geq 1} and u x y i z v {\displaystyle uxy^{i}zv} is in L {\displaystyle L} for every integer i ≥ 0 {\displaystyle i\geq 0} . From this, the above standard v

    Read more →
  • Best AI Website Builders in 2026

    Best AI Website Builders in 2026

    Comparing the best AI website builder? An AI website builder is software that uses machine learning to help you get more done — it lowers the barrier so anyone can produce professional output. Privacy matters too: check whether your data trains the model and whether a no-log or enterprise tier is available. Whether you are a beginner or a pro, the right AI website builder slots into your workflow and pays for itself fast. Below we compare features, pricing, and real output so you can choose with confidence.

    Read more →