What is the intuition for semi-continuous functions?
Here is the definition of semi-continuous functions that I know.
Let $X$ be a topological space and let $f$ be a function from $X$ into $R$.
(1) $f$ is lower semi-continuous if $\forall \alpha\in R$, the set $\{x\in X : f(x) > \alpha \}$ is open in X.
(2) $f$ is upper semi-continuous if $\forall \alpha\in R$, the set $\{x\in X : f(x) < \alpha \}$ is open in X.
I heard that semi-continuity is a generalization of one-sided continuity from left or right (as in single variable calculus) to continuity from "below" or "above", but I could not see from the definitions above how that is so.
How can I see this intuitively?
A function is continuous if the preimage of every open set is an open set. (This is the definition in topology and is the "right" definition in some sense.) The definitions you cite of semicontinuities claim that the preimages of certain open sets are open, but does not say so about all open sets.
Note that $\{ \{f \in \mathbb{R} \mid f > \alpha\} \mid \alpha \in \mathbb{R} \} \cup \{ \{f \in \mathbb{R} \mid f < \beta\} \mid \beta \in \mathbb{R} \} $ is a (topological) basis for $\mathbb{R}$. (Finite intersections of such sets generate all the intervals $(a,b) \subset \mathbb{R}$, which is also a basis, although perhaps more recognizably so.) Consequently, a function that is both upper and lower semicontinuous has the property that the preimages of intervals are the intersections of two open preimages (an upper preimage and a lower preimage), so are open. Thus, being both upper and lower semicontinuous means being continuous. (Some minor details are elided in this argument, but are not essential.)
As @Martín-BlasPérezPinilla observes, this has nothing to do with continuity from the right or left. If you wish to discuss those ideas, you should look up cadlag and caglad.
One way to intuit upper and lower semicontinuity is to imagine dipping the graph of the function in paint. If you dip it so that the lower parts of the function are wetted, then you get the parts where $f(x) < \alpha$ where $\alpha$ is the level up to which you dipped the function. If you dip it so that only the upper parts of the function are wetted (perhaps by standing on your head), then you get the parts where $f(x) > \alpha$. To be upper semicontinuous, the definition you cite requires that all possible lower wetted subsets of the graph of the function project onto open subsets of the domain. This can be difficult if a connected component of the graph descends (to the right) to a closed endpoint that is below the function to the right of it -- dipping such a function in the paint only enough to include a (half-) neighborhood of the closed endpoint will end up with a little painted segment that may be open on one end and closed on the end of the closed endpoint. Such a function would not be upper semicontinuous. (Note that if the values of the function to the right were below (or at the same height as) the closed endpoint, then they would necessarily be painted any time the endpoint is, so the described scenario need not turn out the same.)
"... semi-continuity is a generalization of one-sided continuity from left or right..."
Utterly false. In lateral continuity the "side condition" is on the domain while in semicontinuity the "side condition" is on the range.
The idea of continuity is "if $x$ is near of $c$ then $f(x)$ is near of $f(c)$". Semicontinuity relaxes the condition to "$f(x)$ is near of $f(c)$ or in this side of $f(c)$". See Semicontinuity in the Wikipedia.
As has been pointed out before, it's very different from continuity from right or left. In fact, the notion of left/right only comes up when the domain is contained in the real line. The left/right indicates us reaching a point $x_0$ in the domain from left or from right (since the $x$-axis serves as the domain). So naturally the up/down suggests reaching the point $f(x_0)$ from up or down (since the range is along the $y$-axis).
You call a function $f:X\rightarrow \mathbb{R}$ to be continuous at $x_0$ if given $\epsilon>0$ there is some neighbourhood $U$ of $x_0$ such that for all $x\in U$ we have $$f(x_0)-\epsilon<f(x)<f(x_0)+\epsilon\:\:\:\;\:\:\:\:\:\:\:\:\:(*)$$ We shall call $f$ to be upper semicontinuous at $x_0$ if given $\epsilon>0$ we can find a neighbourhood $U$ of $x_0$ such that for all $x\in U$ we have $$f(x)<f(x_0)+\epsilon$$ We define lower semicontinuity likewise. So the conditions of the two semicontinuity are the two halves of the inequality in $(*)$. Clearly then a function is continuous at a point if and only if it is both upper and lower semicontinuous there. To me this much is pretty intuitive.
From here you can get an equivalent condition for everywhere semicontinuity like the one stated in your question. It's just like how you prove a function is continuous at every point (in the sense that I have defined above) if and only if the inverse image of open sets is open.